148 lines
3.9 KiB
C#
148 lines
3.9 KiB
C#
namespace Dreamteck.Splines.Editor
|
|
{
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEditor;
|
|
|
|
public class EditorModule
|
|
{
|
|
protected string prefPrefix = "";
|
|
|
|
private bool _changed = false;
|
|
|
|
public bool hasChanged { get { return _changed; } }
|
|
|
|
protected void RegisterChange()
|
|
{
|
|
_changed = true;
|
|
}
|
|
|
|
public virtual void Select()
|
|
{
|
|
LoadState();
|
|
}
|
|
|
|
public virtual void Deselect()
|
|
{
|
|
SaveState();
|
|
}
|
|
|
|
public virtual void BeforeSceneDraw(SceneView current)
|
|
{
|
|
}
|
|
|
|
public void DrawScene()
|
|
{
|
|
_changed = false;
|
|
OnDrawScene();
|
|
}
|
|
|
|
protected virtual void OnDrawScene()
|
|
{
|
|
}
|
|
|
|
public void DrawInspector()
|
|
{
|
|
_changed = false;
|
|
OnDrawInspector();
|
|
}
|
|
|
|
protected virtual void OnDrawInspector()
|
|
{
|
|
}
|
|
|
|
public virtual GUIContent GetIconOff()
|
|
{
|
|
return new GUIContent("OFF", "Point Module Off");
|
|
}
|
|
|
|
public virtual GUIContent GetIconOn()
|
|
{
|
|
return new GUIContent("ON", "Point Module On");
|
|
}
|
|
|
|
protected virtual void RecordUndo(string title)
|
|
{
|
|
}
|
|
|
|
protected virtual void Repaint()
|
|
{
|
|
}
|
|
|
|
protected void SaveBool(string variableName, bool value)
|
|
{
|
|
if (prefPrefix == "") prefPrefix = GetType().ToString();
|
|
EditorPrefs.SetBool(prefPrefix + "." + variableName, value);
|
|
}
|
|
|
|
protected void SaveInt(string variableName, int value)
|
|
{
|
|
if (prefPrefix == "") prefPrefix = GetType().ToString();
|
|
EditorPrefs.SetInt(prefPrefix + "." + variableName, value);
|
|
}
|
|
|
|
protected void SaveFloat(string variableName, float value)
|
|
{
|
|
if (prefPrefix == "") prefPrefix = GetType().ToString();
|
|
EditorPrefs.SetFloat(prefPrefix + "." + variableName, value);
|
|
}
|
|
|
|
protected void SaveString(string variableName, string value)
|
|
{
|
|
if (prefPrefix == "") prefPrefix = GetType().ToString();
|
|
EditorPrefs.SetString(prefPrefix + "." + variableName, value);
|
|
}
|
|
|
|
protected bool LoadBool(string variableName)
|
|
{
|
|
if (prefPrefix == "") prefPrefix = GetType().ToString();
|
|
return EditorPrefs.GetBool(prefPrefix + "." + variableName, false);
|
|
}
|
|
|
|
protected int LoadInt(string variableName, int defaultValue = 0)
|
|
{
|
|
if (prefPrefix == "") prefPrefix = GetType().ToString();
|
|
return EditorPrefs.GetInt(prefPrefix + "." + variableName, defaultValue);
|
|
}
|
|
|
|
protected float LoadFloat(string variableName, float d = 0f)
|
|
{
|
|
if (prefPrefix == "") prefPrefix = GetType().ToString();
|
|
return EditorPrefs.GetFloat(prefPrefix + "." + variableName, d);
|
|
}
|
|
|
|
protected string LoadString(string variableName)
|
|
{
|
|
if (prefPrefix == "") prefPrefix = GetType().ToString();
|
|
return EditorPrefs.GetString(prefPrefix + "." + variableName, "");
|
|
}
|
|
|
|
public virtual void SaveState()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void LoadState()
|
|
{
|
|
|
|
}
|
|
|
|
internal static GUIContent IconContent(string title, string iconName, string description)
|
|
{
|
|
GUIContent content = new GUIContent(title, description);
|
|
if (EditorGUIUtility.isProSkin)
|
|
{
|
|
iconName += "_dark";
|
|
}
|
|
Texture2D tex = ResourceUtility.EditorLoadTexture("Splines/Editor/Icons", iconName);
|
|
if (tex != null)
|
|
{
|
|
content.image = tex;
|
|
content.text = "";
|
|
}
|
|
return content;
|
|
}
|
|
}
|
|
}
|