97 lines
2.3 KiB
C#
97 lines
2.3 KiB
C#
using JBooth.MicroVerseCore;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace JBooth.MicroVerseCore.Browser.CollectionWizard
|
|
{
|
|
public class BrowserToolsModule
|
|
{
|
|
private BrowserToolsModule editor;
|
|
private BrowserToolsData editorTarget;
|
|
private SerializedObject serializedObject;
|
|
|
|
private SerializedProperty module;
|
|
|
|
private IBrowserToolsModule presetsModule;
|
|
|
|
private GUIContent[] modeButtons;
|
|
|
|
|
|
public void OnEnable(SerializedObject serializedObject, BrowserToolsData target)
|
|
{
|
|
this.editor = this;
|
|
this.editorTarget = target;
|
|
this.serializedObject = serializedObject;
|
|
|
|
this.presetsModule = new PresetsModule(editor, serializedObject);
|
|
|
|
Init();
|
|
|
|
}
|
|
|
|
private void Init()
|
|
{
|
|
modeButtons = new GUIContent[]
|
|
{
|
|
new GUIContent( "Presets", "Presets settings")
|
|
};
|
|
|
|
module = serializedObject.FindProperty("module");
|
|
|
|
}
|
|
|
|
|
|
public void OnDisable()
|
|
{
|
|
}
|
|
|
|
public BrowserToolsData GetEditorTarget()
|
|
{
|
|
return editorTarget;
|
|
}
|
|
|
|
#region Inspector
|
|
public void OnInspectorGUI()
|
|
{
|
|
serializedObject.Update();
|
|
|
|
// modules
|
|
EditorGUI.BeginChangeCheck();
|
|
{
|
|
module.intValue = GUILayout.Toolbar(module.intValue, modeButtons, EditorStyles.miniButton);
|
|
}
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
ModeChanged((BrowserToolsData.Module)module.intValue);
|
|
}
|
|
|
|
// control
|
|
switch (editorTarget.module)
|
|
{
|
|
case BrowserToolsData.Module.Presets:
|
|
presetsModule.OnInspectorGUI();
|
|
break;
|
|
|
|
default:
|
|
throw new System.Exception("Unsupported mode: " + editorTarget.module);
|
|
}
|
|
|
|
// apply changes to serializedProperty
|
|
serializedObject.ApplyModifiedProperties();
|
|
|
|
}
|
|
#endregion Inspector
|
|
|
|
private void ModeChanged(BrowserToolsData.Module mode)
|
|
{
|
|
// nothing to do yet
|
|
}
|
|
public SerializedObject GetSerializedObject()
|
|
{
|
|
return this.serializedObject;
|
|
}
|
|
}
|
|
|
|
}
|
|
|