Files
RPGBook/Assets/Okitoki Games/EasyTalk/Editor/Scripts/display/DialoguePanelEditor.cs
SHOUTING_PIRATE f5928e04c4 intial commit
2025-07-21 17:10:16 +01:00

117 lines
4.9 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using EasyTalk.Display;
using EasyTalk.Animation;
using EasyTalk.Editor.Utils;
namespace EasyTalk.Editor.Display
{
[CustomEditor(typeof(DialoguePanel))]
public class DialoguePanelEditor : UnityEditor.Editor
{
protected SerializedObject displayObj;
protected static bool expandGeneralSettings = false;
protected static bool expandAnimationSettings = false;
protected static bool expandPanelEventSettings = false;
protected static bool expandFontSettings = false;
protected virtual void CreateDisplaySettings()
{
ETGUI.DrawLineSeparator();
EditorGUILayout.PropertyField(displayObj.FindProperty("displayID"), new GUIContent("Display ID", "An identifier for the panel."));
}
protected void CreateGeneralSettings()
{
ETGUI.DrawLineSeparator();
expandGeneralSettings = EditorGUILayout.Foldout(expandGeneralSettings, new GUIContent("General Settings"), EditorStyles.foldoutHeader);
if (expandGeneralSettings)
{
EditorGUI.indentLevel++;
CreateGeneralFields();
EditorGUI.indentLevel--;
}
}
protected virtual void CreateGeneralFields()
{
EditorGUILayout.PropertyField(displayObj.FindProperty("forceStandardText"), new GUIContent("Force Standard Text Use?"));
}
protected virtual void CreateFontSettings(DialoguePanel display)
{
ETGUI.DrawLineSeparator();
expandFontSettings = EditorGUILayout.Foldout(expandFontSettings, new GUIContent("Font Settings"), EditorStyles.foldoutHeader);
if (expandFontSettings)
{
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(displayObj.FindProperty("languageFontOverrides"), new GUIContent("Language Font Overrides"));
bool overrideFontSizes = EditorGUILayout.BeginToggleGroup(new GUIContent("Override Font Size Settings"), display.OverrideFontSizes);
if (overrideFontSizes != display.OverrideFontSizes)
{
display.OverrideFontSizes = overrideFontSizes;
EditorUtility.SetDirty(display);
}
if (overrideFontSizes)
{
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(displayObj.FindProperty("minFontSize"), new GUIContent("Min Font Size"));
EditorGUILayout.PropertyField(displayObj.FindProperty("maxFontSize"), new GUIContent("Max Font Size"));
EditorGUI.indentLevel--;
}
EditorGUILayout.EndToggleGroup();
EditorGUI.indentLevel--;
}
}
protected virtual void CreateAnimationSettings(DialoguePanel display)
{
ETGUI.DrawLineSeparator();
expandAnimationSettings = EditorGUILayout.Foldout(expandAnimationSettings, new GUIContent("Animation Settings"), EditorStyles.foldoutHeader);
if (expandAnimationSettings)
{
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(displayObj.FindProperty("animationType"), new GUIContent("Animation Type"));
EditorGUILayout.PropertyField(displayObj.FindProperty("animationCurve"), new GUIContent("Animation Curve"));
EditorGUILayout.PropertyField(displayObj.FindProperty("animationTime"), new GUIContent("Animation Time"));
if (display.AnimationType == UIAnimator.Animation.SLIDE_RIGHT || display.AnimationType == UIAnimator.Animation.SLIDE_LEFT ||
display.AnimationType == UIAnimator.Animation.SLIDE_UP || display.AnimationType == UIAnimator.Animation.SLIDE_DOWN)
{
EditorGUILayout.PropertyField(displayObj.FindProperty("returnToOriginalPosition"), new GUIContent("Return to Original Position"));
}
EditorGUI.indentLevel--;
}
}
protected virtual void CreateDialoguePanelEventSettings()
{
ETGUI.DrawLineSeparator();
expandPanelEventSettings = EditorGUILayout.Foldout(expandPanelEventSettings, new GUIContent("Display Panel Events"), EditorStyles.foldoutHeader);
if (expandPanelEventSettings)
{
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(displayObj.FindProperty("onHideStart"));
EditorGUILayout.PropertyField(displayObj.FindProperty("onHideComplete"));
EditorGUILayout.PropertyField(displayObj.FindProperty("onShowStart"));
EditorGUILayout.PropertyField(displayObj.FindProperty("onShowComplete"));
EditorGUI.indentLevel--;
}
}
}
}