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.

62 lines
2.1 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
{
[CustomEditor (typeof(Call))]
public class CallEditor : CommandEditor
{
protected SerializedProperty targetFlowchartProp;
protected SerializedProperty targetBlockProp;
protected SerializedProperty startIndexProp;
protected SerializedProperty callModeProp;
protected virtual void OnEnable()
{
if (NullTargetCheck()) // Check for an orphaned editor instance
return;
targetFlowchartProp = serializedObject.FindProperty("targetFlowchart");
targetBlockProp = serializedObject.FindProperty("targetBlock");
startIndexProp = serializedObject.FindProperty("startIndex");
callModeProp = serializedObject.FindProperty("callMode");
}
public override void DrawCommandGUI()
{
serializedObject.Update();
Call t = target as Call;
Flowchart flowchart = null;
if (targetFlowchartProp.objectReferenceValue == null)
{
flowchart = (Flowchart)t.GetFlowchart();
}
else
{
flowchart = targetFlowchartProp.objectReferenceValue as Flowchart;
}
EditorGUILayout.PropertyField(targetFlowchartProp);
if (flowchart != null)
{
BlockEditor.BlockField(targetBlockProp,
new GUIContent("Target Block", "Block to call"),
new GUIContent("<None>"),
flowchart);
EditorGUILayout.PropertyField(startIndexProp);
}
EditorGUILayout.PropertyField(callModeProp);
serializedObject.ApplyModifiedProperties();
}
}
}