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.

52 lines
1.8 KiB

using UnityEditor;
using UnityEditorInternal;
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
namespace Fungus.Script
{
[CustomEditor (typeof(Say))]
public class SayEditor : FungusCommandEditor
{
public override void DrawCommandInspectorGUI()
{
Say t = target as Say;
EditorGUI.BeginChangeCheck();
string character = EditorGUILayout.TextField(new GUIContent("Character", "Character to display in dialog"), t.character);
EditorGUILayout.PrefixLabel(new GUIContent("Say Text", "Text to display in dialog"));
EditorStyles.textField.wordWrap = true;
string text = EditorGUILayout.TextArea(t.text, GUILayout.MinHeight(50));
Say.ShowCondition showCondition = (Say.ShowCondition)EditorGUILayout.EnumPopup(new GUIContent("Show Condition", "Condition when this say text should be visible."), t.showCondition);
string booleanVariableKey = t.booleanVariableKey;
if (showCondition == Say.ShowCondition.BooleanIsFalse ||
showCondition == Say.ShowCondition.BooleanIsTrue)
{
VariableType type = VariableType.Boolean;
booleanVariableKey = SequenceEditor.VariableField (new GUIContent ("Boolean Variable", "Boolean variable to test for condition"),
t.GetFungusScript (),
t.booleanVariableKey,
ref type,
v => { return v.type == VariableType.Boolean; });
}
if (EditorGUI.EndChangeCheck())
{
Undo.RecordObject(t, "Set Say");
t.character = character;
t.text = text;
t.showCondition = showCondition;
t.booleanVariableKey = booleanVariableKey;
}
}
}
}