Files
Fishing2/Packages/com.jbooth.microverse/Scripts/Editor/CollectionWizard/BrowserToolsModule.cs
2025-06-09 23:23:13 +08:00

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;
}
}
}