An easy to use Unity 3D library for creating illustrated Interactive Fiction games and more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
2.3 KiB

// This code is part of the Fungus library (http://fungusgames.com) maintained by Chris Gregan (http://twitter.com/gofungus).
// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE)
using UnityEditor;
using UnityEngine;
using Fungus.Commands;
namespace Fungus.EditorUtils
{
[CustomEditor (typeof(Fungus.Commands.Menu))]
public class MenuEditor : CommandEditor
{
protected SerializedProperty textProp;
protected SerializedProperty descriptionProp;
protected SerializedProperty targetBlockProp;
protected SerializedProperty hideIfVisitedProp;
protected SerializedProperty interactableProp;
protected SerializedProperty setMenuDialogProp;
protected virtual void OnEnable()
{
if (NullTargetCheck()) // Check for an orphaned editor instance
return;
textProp = serializedObject.FindProperty("text");
descriptionProp = serializedObject.FindProperty("description");
targetBlockProp = serializedObject.FindProperty("targetBlock");
hideIfVisitedProp = serializedObject.FindProperty("hideIfVisited");
interactableProp = serializedObject.FindProperty("interactable");
setMenuDialogProp = serializedObject.FindProperty("setMenuDialog");
}
public override void DrawCommandGUI()
{
var flowchart = FlowchartWindow.GetFlowchart();
if (flowchart == null)
{
return;
}
serializedObject.Update();
EditorGUILayout.PropertyField(textProp);
EditorGUILayout.PropertyField(descriptionProp);
BlockEditor.BlockField(targetBlockProp,
new GUIContent("Target Block", "Block to call when option is selected"),
new GUIContent("<None>"),
flowchart);
EditorGUILayout.PropertyField(hideIfVisitedProp);
EditorGUILayout.PropertyField(interactableProp);
EditorGUILayout.PropertyField(setMenuDialogProp);
serializedObject.ApplyModifiedProperties();
}
}
}