Files
Mementos/Unity/Alternate Genre Jam/Assets/Ink/Editor/Tools/Startup Window/InkUnityIntegrationStartupWindow.cs
2021-06-30 21:39:19 +10:00

123 lines
5.7 KiB
C#
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using UnityEditor;
using UnityEngine;
namespace Ink.UnityIntegration {
[InitializeOnLoad]
public class InkUnityIntegrationStartupWindow : EditorWindow {
const string editorPrefsKeyForVersionSeen = "Ink Unity Integration Startup Window Version Confirmed";
const int announcementVersion = 2;
Vector2 scrollPosition;
static int announcementVersionPreviouslySeen;
private static Texture2D _logoIcon;
public static Texture2D logoIcon {
get {
if(_logoIcon == null) {
_logoIcon = Resources.Load<Texture2D>("InkLogoIcon");
}
return _logoIcon;
}
}
static InkUnityIntegrationStartupWindow () {
UnityEditor.EditorApplication.delayCall += TryCreateWindow;
}
static void TryCreateWindow() {
announcementVersionPreviouslySeen = EditorPrefs.GetInt(editorPrefsKeyForVersionSeen, -1);
if(announcementVersion != announcementVersionPreviouslySeen) {
ShowWindow();
}
}
public static void ShowWindow () {
InkUnityIntegrationStartupWindow window = EditorWindow.GetWindow(typeof(InkUnityIntegrationStartupWindow), true, "Ink Update "+InkLibrary.unityIntegrationVersionCurrent.ToString(), true) as InkUnityIntegrationStartupWindow;
window.minSize = new Vector2(200, 200);
var size = new Vector2(520, 320);
window.position = new Rect((Screen.currentResolution.width-size.x) * 0.5f, (Screen.currentResolution.height-size.y) * 0.5f, size.x, size.y);
EditorPrefs.SetInt(editorPrefsKeyForVersionSeen, announcementVersion);
}
void OnGUI ()
{
EditorGUILayout.BeginVertical();
var areaSize = new Vector2(90,90);
GUILayout.BeginArea(new Rect((position.width-areaSize.x)*0.5f, 15, areaSize.x, areaSize.y));
EditorGUILayout.BeginVertical();
EditorGUILayout.LabelField(new GUIContent(logoIcon), GUILayout.Width(areaSize.x), GUILayout.Height(areaSize.x*((float)logoIcon.height/logoIcon.width)));
GUILayout.Space(5);
EditorGUILayout.LabelField("Version "+InkLibrary.unityIntegrationVersionCurrent.ToString(), EditorStyles.centeredGreyMiniLabel);
EditorGUILayout.LabelField("Ink version "+InkLibrary.inkVersionCurrent.ToString(), EditorStyles.centeredGreyMiniLabel);
EditorGUILayout.EndVertical();
GUILayout.EndArea();
GUILayout.Space(20+areaSize.y);
if(announcementVersionPreviouslySeen == -1) {
EditorGUILayout.BeginVertical(GUI.skin.box);
EditorGUILayout.LabelField("New to ink?", EditorStyles.boldLabel);
EditorGUILayout.EndVertical();
}
{
EditorGUILayout.BeginHorizontal();
if (GUILayout.Button("About Ink")) {
Application.OpenURL("https://www.inklestudios.com/ink/");
}
if (GUILayout.Button("❤Support Us!❤️")) {
Application.OpenURL("https://www.patreon.com/inkle");
}
if (GUILayout.Button("Close")) {
Close();
}
EditorGUILayout.EndHorizontal();
}
EditorGUILayout.Space();
{
scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition);
{
// 1.0.0
EditorGUILayout.BeginVertical(GUI.skin.box);
EditorGUILayout.LabelField("🎉Version 1.0.0🎉:", EditorStyles.boldLabel);
EditorGUILayout.LabelField("• Update ink to 1.0.0", EditorStyles.wordWrappedLabel);
EditorGUILayout.LabelField("• Ink Editor Window: Allow resizing (some) panels", EditorStyles.wordWrappedLabel);
EditorGUILayout.LabelField("• Ink Editor Window: Named content panel ", EditorStyles.wordWrappedLabel);
EditorGUILayout.LabelField("• Ink Editor Window: Improved performance for large stories", EditorStyles.wordWrappedLabel);
EditorGUILayout.LabelField("• Allow compiling include files that don't have the .ink file extension", EditorStyles.wordWrappedLabel);
EditorGUILayout.LabelField("• Remove ability to use a custom inklecate (legacy compiler)", EditorStyles.wordWrappedLabel);
EditorGUILayout.LabelField("• Fixes settings menu on 2020+", EditorStyles.wordWrappedLabel);
EditorGUILayout.LabelField("• Improved migration from earlier versions", EditorStyles.wordWrappedLabel);
EditorGUILayout.LabelField("• Moved persistent compilation tracking code from InkLibrary into InkCompiler", EditorStyles.wordWrappedLabel);
EditorGUILayout.LabelField("• Use Unity's new ScriptableSingleton for InkLibrary, InkSettings and InkCompiler on 2020+", EditorStyles.wordWrappedLabel);
EditorGUILayout.EndVertical();
EditorGUILayout.BeginVertical(GUI.skin.box);
// 0.9.71
EditorGUILayout.BeginVertical(GUI.skin.box);
EditorGUILayout.LabelField("Version 0.9.71:", EditorStyles.boldLabel);
EditorGUILayout.LabelField("• Resolves some compilation issues.", EditorStyles.wordWrappedLabel);
EditorGUILayout.EndVertical();
EditorGUILayout.BeginVertical(GUI.skin.box);
// 0.9.60
EditorGUILayout.LabelField("Version 0.9.60:", EditorStyles.boldLabel);
EditorGUILayout.LabelField("• Moved InkLibrary and InkSettings from Assets into Library and ProjectSettings.", EditorStyles.wordWrappedLabel);
EditorGUILayout.LabelField(" ‣ InkLibrary should no longer be tracked in source control.", EditorStyles.wordWrappedLabel);
EditorGUILayout.LabelField(" ‣ Changes to InkSettings must be migrated manually.", EditorStyles.wordWrappedLabel);
EditorGUILayout.LabelField(" ‣ The InkLibrary and InkSettings files in your project folder should be deleted.", EditorStyles.wordWrappedLabel);
EditorGUILayout.LabelField("• Added a divertable list of knots, stitches and other named content to the Ink Editor Window, replacing the Diverts subpanel.", EditorStyles.wordWrappedLabel);
EditorGUILayout.EndVertical();
}
EditorGUILayout.EndScrollView();
}
EditorGUILayout.Space();
EditorGUILayout.EndVertical();
}
}
}