rabidus-test/Assets/Dreamteck/Splines/Editor/SplineEditor/EditorModule.cs

148 lines
3.9 KiB
C#
Raw Normal View History

2023-07-24 16:38:13 +03:00
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;
}
}
}