public override void OnInspectorGUI() { targetAction = target as QuestAction; CheckLocalizations(); //Debug.Log ("Editing " + targetAction); if (Application.isPlaying) { if (GUILayout.Button(QuestEditorsLocals.GetString("Action!"))) { targetAction.Action(); } } GUILayout.Space(3f); DrawActions(targetAction.actions, QuestEditorsLocals.GetString("Actions sequence:"), ref targetAction.visibleActions, Color.white); Event evt = Event.current; if (evt.type == EventType.ContextClick) { GenericMenu menu = new GenericMenu(); menu.AddItem(new GUIContent("Test"), true, OnInspectorGUI); menu.AddItem(new GUIContent("Test"), true, OnInspectorGUI); menu.ShowAsContext(); evt.Use(); } }
public static string GetString(string key) { if (instance == null) { instance = FindObjectOfType <QuestEditorsLocals>(); } List <Key> searchArr = null; if (instance.language == Language.Eng) { searchArr = instance.engStrings; } if (instance.language == Language.Rus) { searchArr = instance.rusStrings; } Key ks = searchArr.Find(x => x.key == key); if (ks == null) { //Debug.LogWarning ("Can't find quest localize string: " + key); return(key); } return(ks.value); }
public void DrawQuestAction(DebugQuestAction action) { GUILayout.BeginHorizontal(); EditorGUILayout.LabelField(QuestEditorsLocals.GetString("Message"), GUILayout.MaxWidth(80f)); action.message = EditorGUILayout.TextField(action.message); GUILayout.EndHorizontal(); }
public void DrawQuestAction(IfElseQuestAction action) { internalIndent++; DrawIfElseCondition(action.conditions, ref action.visibleConditions); DrawActions(action.onTrueActions, QuestEditorsLocals.GetString("TRUE actions sequence"), ref action.visibleTrueActions, lightGreen); DrawActions(action.onFalseActions, QuestEditorsLocals.GetString("FALSE actions sequence"), ref action.visibleFalseActions, lightRed); internalIndent--; }
public void DrawQuestAction(SetVariableQuestAction action) { GUILayout.BeginHorizontal(); action.variable = (QuestVariable)EditorGUILayout.ObjectField(action.variable, typeof(QuestVariable), false); EditorGUILayout.LabelField(QuestEditorsLocals.GetString("Value"), GUILayout.MaxWidth(60f)); action.value = EditorGUILayout.TextField(action.value); GUILayout.EndHorizontal(); }
void LocalizeArray(ref string[] locals, string[] keys) { if (locals == null) { locals = new string[keys.Count()]; for (int i = 0; i < keys.Count(); i++) { locals[i] = QuestEditorsLocals.GetString(keys[i]); } } }
void DrawIfElseCondition(List <IConditionState> states, ref bool opened) { opened = EditorsUtilities.DrawHeader(QuestEditorsLocals.GetString("IF:"), opened, internalIndent); if (opened) { EditorsUtilities.BeginContentsColored(lightBlue, internalIndent); if (states.Count == 0) { GUILayout.Label(QuestEditorsLocals.GetString("ALWAYS TRUE (no conditions)")); } else { EditorGUI.indentLevel++; int idx = 0; int needRemoveAtIdx = -1; foreach (IConditionState state in states) { if (DrawConditionStateUI(state, (idx % 2 == 0) ? Color.white:Color.gray, idx != states.Count - 1)) { needRemoveAtIdx = idx; } idx++; } if (needRemoveAtIdx >= 0) { states.RemoveAt(needRemoveAtIdx); } EditorGUI.indentLevel--; } GUILayout.BeginHorizontal(); if (GUILayout.Button(QuestEditorsLocals.GetString("Clear"))) { states.Clear(); } if (GUILayout.Button(QuestEditorsLocals.GetString("Add condition"))) { CreateNewCondition(states); } creationConditionType = (ConditionType)EditorGUILayout.Popup((int)creationConditionType, locConditionTypeNames); GUILayout.Space(5f); GUILayout.EndHorizontal(); EditorsUtilities.EndContents(); } }
public void DrawActions(List <IQuestAction> actions, string caption, ref bool opened, Color color) { opened = EditorsUtilities.DrawHeader(caption, opened, internalIndent); if (opened) { EditorsUtilities.BeginContentsColored(color, internalIndent); if (actions.Count == 0) { GUILayout.Label(QuestEditorsLocals.GetString("No actions")); } else { internalIndent++; int idx = 0; int needActionIdx = -1; int needAction = 0; foreach (IQuestAction act in actions) { int actt = DrawActionUI(act, (idx % 2 == 0) ? Color.white:Color.gray); if (actt > 0) { needActionIdx = idx; needAction = actt; } idx++; } if (needActionIdx >= 0) { if (needAction == 1) { actions.RemoveAt(needActionIdx); } if (needAction == 2) { actions.Insert(needActionIdx - 1, actions[needActionIdx]); actions.RemoveAt(needActionIdx + 1); } if (needAction == 3) { actions.Insert(needActionIdx + 2, actions[needActionIdx]); actions.RemoveAt(needActionIdx); } } internalIndent--; } GUILayout.BeginHorizontal(); if (GUILayout.Button(QuestEditorsLocals.GetString("Clear"))) { ClearActions(actions); } if (GUILayout.Button(QuestEditorsLocals.GetString("Add action"))) { CreateNewAction(actions); } creationActionType = (ActionType)EditorGUILayout.Popup((int)creationActionType, locActionTypeNames); GUILayout.Space(5f); GUILayout.EndHorizontal(); EditorsUtilities.EndContents(); } }
public int DrawActionUI(IQuestAction action, Color colr) { int procAction = 0; GUILayout.BeginHorizontal(); if (action.opened) { GUILayout.BeginVertical(); if (GUILayout.Button("\u25AC", "ButtonLeft", GUILayout.Width(20f), GUILayout.Height(16f))) { procAction = 1; } if (GUILayout.Button("\u25B2", "ButtonLeft", GUILayout.Width(20f), GUILayout.Height(16f))) { procAction = 2; } if (GUILayout.Button("\u25BC", "ButtonLeft", GUILayout.Width(20f), GUILayout.Height(16f))) { procAction = 3; } GUILayout.EndVertical(); } else { if (GUILayout.Button("\u25AC", "ButtonLeft", GUILayout.Width(20f), GUILayout.Height(16f))) { procAction = 1; } } EditorGUILayout.BeginVertical(); action.opened = EditorsUtilities.DrawHeader(action.caption, action.opened, internalIndent); if (action.opened) { EditorsUtilities.BeginContentsColored(colr, internalIndent); EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(QuestEditorsLocals.GetString("Caption:"), GUILayout.MaxWidth(100f)); action.caption = EditorGUILayout.TextField(action.caption); EditorGUILayout.EndHorizontal(); if (action.GetType() == typeof(PlayAnimQuestAction)) { DrawQuestAction(action as PlayAnimQuestAction); } else if (action.GetType() == typeof(IfElseQuestAction)) { DrawQuestAction(action as IfElseQuestAction); } else if (action.GetType() == typeof(DebugQuestAction)) { DrawQuestAction(action as DebugQuestAction); } else if (action.GetType() == typeof(SetVariableQuestAction)) { DrawQuestAction(action as SetVariableQuestAction); } else if (action.GetType() == typeof(AddQuestItemAction)) { DrawQuestAction(action as AddQuestItemAction); } else if (action.GetType() == typeof(UseItemQuestAction)) { DrawQuestAction(action as UseItemQuestAction); } EditorGUILayout.EndVertical(); EditorsUtilities.EndContents(); } EditorGUILayout.EndVertical(); GUILayout.EndHorizontal(); GUILayout.Space(5f); return(procAction); }