fix: OctoWorldEventEditor moved to Editor folder
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
using OctoCore.Utilities;
|
||||
using UnityEditor;
|
||||
|
||||
namespace OctoCore.Components.Editor
|
||||
{
|
||||
[CustomEditor(typeof(OctoWorldEvent))]
|
||||
public class OctoWorldEventEditor : UnityEditor.Editor
|
||||
{
|
||||
SerializedProperty _trigger;
|
||||
SerializedProperty _action;
|
||||
SerializedProperty _condition;
|
||||
SerializedProperty _tags;
|
||||
SerializedProperty _targets;
|
||||
SerializedProperty _tolerance;
|
||||
SerializedProperty _duration;
|
||||
SerializedProperty _execution;
|
||||
SerializedProperty _delay;
|
||||
SerializedProperty _onTrigger;
|
||||
SerializedProperty _onTriggerDelayed;
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
_trigger = serializedObject.FindProperty("_trigger");
|
||||
_action = serializedObject.FindProperty("_action");
|
||||
_condition = serializedObject.FindProperty("_condition");
|
||||
_tags = serializedObject.FindProperty("_tags");
|
||||
_targets = serializedObject.FindProperty("_targets");
|
||||
_tolerance = serializedObject.FindProperty("_tolerance");
|
||||
_duration = serializedObject.FindProperty("_duration");
|
||||
_execution = serializedObject.FindProperty("_execution");
|
||||
_delay = serializedObject.FindProperty("_delay");
|
||||
_onTrigger = serializedObject.FindProperty("_onTrigger");
|
||||
_onTriggerDelayed = serializedObject.FindProperty("_onTriggerDelayed");
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
serializedObject.Update();
|
||||
|
||||
EditorGUILayout.PropertyField(_trigger);
|
||||
|
||||
var trigger = (Utilities.OctoEvents)_trigger.enumValueIndex;
|
||||
|
||||
if (trigger == Utilities.OctoEvents.Action)
|
||||
EditorGUILayout.PropertyField(_action);
|
||||
|
||||
if (trigger == Utilities.OctoEvents.OnPlayerLookAt)
|
||||
{
|
||||
EditorGUILayout.Space(5);
|
||||
EditorGUILayout.PropertyField(_tolerance);
|
||||
EditorGUILayout.PropertyField(_duration);
|
||||
}
|
||||
|
||||
if (UsesTriggerCondition(trigger))
|
||||
{
|
||||
EditorGUILayout.Space(5);
|
||||
EditorGUILayout.PropertyField(_condition);
|
||||
|
||||
var condition = (OctoWorldEvent.Conditions)_condition.enumValueIndex;
|
||||
|
||||
if (condition == OctoWorldEvent.Conditions.Tags)
|
||||
EditorGUILayout.PropertyField(_tags, true);
|
||||
|
||||
if (condition == OctoWorldEvent.Conditions.Targets)
|
||||
EditorGUILayout.PropertyField(_targets, true);
|
||||
}
|
||||
|
||||
DrawExecutionEvents();
|
||||
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
|
||||
void DrawExecutionEvents()
|
||||
{
|
||||
EditorGUILayout.Space(10);
|
||||
EditorGUILayout.PropertyField(_execution);
|
||||
|
||||
var execution = (OctoWorldEvent.ExecutionModes)_execution.enumValueIndex;
|
||||
|
||||
if (execution == OctoWorldEvent.ExecutionModes.Immediate ||
|
||||
execution == OctoWorldEvent.ExecutionModes.ImmediateAndDelayed)
|
||||
{
|
||||
EditorGUILayout.PropertyField(_onTrigger);
|
||||
}
|
||||
|
||||
if (execution == OctoWorldEvent.ExecutionModes.Delayed ||
|
||||
execution == OctoWorldEvent.ExecutionModes.ImmediateAndDelayed)
|
||||
{
|
||||
EditorGUILayout.PropertyField(_delay);
|
||||
EditorGUILayout.PropertyField(_onTriggerDelayed);
|
||||
}
|
||||
}
|
||||
|
||||
bool UsesTriggerCondition(Utilities.OctoEvents trigger)
|
||||
{
|
||||
return trigger == Utilities.OctoEvents.OnTriggerEnter ||
|
||||
trigger == Utilities.OctoEvents.OnTriggerStay ||
|
||||
trigger == Utilities.OctoEvents.OnTriggerExit;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fe9cee260bac87a4b80f9bbb38b71211
|
||||
Reference in New Issue
Block a user