private int ShowVarGUI(List <ActionParameter> parameters, List <GVar> vars, int ID, bool changeID) { if (vars.Count > 0) { if (changeID) { ID = ShowVarSelectorGUI(vars, ID); } variableNumber = Mathf.Min(variableNumber, vars.Count - 1); getVarMethod = (GetVarMethod)EditorGUILayout.EnumPopup("Compare with:", getVarMethod); if (vars [variableNumber].type == VariableType.Boolean) { boolCondition = (BoolCondition)EditorGUILayout.EnumPopup("Condition:", boolCondition); if (getVarMethod == GetVarMethod.EnteredValue) { checkParameterID = Action.ChooseParameterGUI("Boolean:", parameters, checkParameterID, ParameterType.Boolean); if (checkParameterID < 0) { EditorGUILayout.LabelField("Boolean:", GUILayout.MaxWidth(60f)); boolValue = (BoolValue)EditorGUILayout.EnumPopup(boolValue); } } } else if (vars [variableNumber].type == VariableType.Integer) { intCondition = (IntCondition)EditorGUILayout.EnumPopup("Condition:", intCondition); if (getVarMethod == GetVarMethod.EnteredValue) { checkParameterID = Action.ChooseParameterGUI("Integer:", parameters, checkParameterID, ParameterType.Integer); if (checkParameterID < 0) { intValue = EditorGUILayout.IntField("Integer:", intValue); } } } else if (vars [variableNumber].type == VariableType.PopUp) { intCondition = (IntCondition)EditorGUILayout.EnumPopup("Condition:", intCondition); if (getVarMethod == GetVarMethod.EnteredValue) { checkParameterID = Action.ChooseParameterGUI("Value:", parameters, checkParameterID, ParameterType.Integer); if (checkParameterID < 0) { intValue = EditorGUILayout.Popup("Value:", intValue, vars [variableNumber].popUps); } } } else if (vars [variableNumber].type == VariableType.Float) { intCondition = (IntCondition)EditorGUILayout.EnumPopup("Condition:", intCondition); if (getVarMethod == GetVarMethod.EnteredValue) { checkParameterID = Action.ChooseParameterGUI("Float:", parameters, checkParameterID, ParameterType.Float); if (checkParameterID < 0) { floatValue = EditorGUILayout.FloatField("Float:", floatValue); } } } else if (vars [variableNumber].type == VariableType.String) { boolCondition = (BoolCondition)EditorGUILayout.EnumPopup("Condition:", boolCondition); if (getVarMethod == GetVarMethod.EnteredValue) { checkParameterID = Action.ChooseParameterGUI("String:", parameters, checkParameterID, ParameterType.String); if (checkParameterID < 0) { stringValue = EditorGUILayout.TextField("String:", stringValue); } } checkCase = EditorGUILayout.Toggle("Case-senstive?", checkCase); } else if (vars [variableNumber].type == VariableType.Vector3) { vectorCondition = (VectorCondition)EditorGUILayout.EnumPopup("Condition:", vectorCondition); if (getVarMethod == GetVarMethod.EnteredValue) { if (vectorCondition == VectorCondition.MagnitudeGreaterThan) { checkParameterID = Action.ChooseParameterGUI("Float:", parameters, checkParameterID, ParameterType.Float); if (checkParameterID < 0) { floatValue = EditorGUILayout.FloatField("Float:", floatValue); } } else if (vectorCondition == VectorCondition.EqualTo) { checkParameterID = Action.ChooseParameterGUI("Vector3:", parameters, checkParameterID, ParameterType.Vector3); if (checkParameterID < 0) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Vector3:", GUILayout.MaxWidth(60f)); vector3Value = EditorGUILayout.Vector3Field("", vector3Value); EditorGUILayout.EndHorizontal(); } } } } if (getVarMethod == GetVarMethod.GlobalVariable) { if (AdvGame.GetReferences().variablesManager == null || AdvGame.GetReferences().variablesManager.vars == null || AdvGame.GetReferences().variablesManager.vars.Count == 0) { EditorGUILayout.HelpBox("No Global variables exist!", MessageType.Info); } else { checkParameterID = Action.ChooseParameterGUI("Global variable:", parameters, checkParameterID, ParameterType.GlobalVariable); if (checkParameterID < 0) { compareVariableID = ShowVarSelectorGUI(AdvGame.GetReferences().variablesManager.vars, compareVariableID); } } } else if (getVarMethod == GetVarMethod.LocalVariable) { if (localVariables == null || localVariables.localVars == null || localVariables.localVars.Count == 0) { EditorGUILayout.HelpBox("No Local variables exist!", MessageType.Info); } else { checkParameterID = Action.ChooseParameterGUI("Local variable:", parameters, checkParameterID, ParameterType.LocalVariable); if (checkParameterID < 0) { compareVariableID = ShowVarSelectorGUI(localVariables.localVars, compareVariableID); } } } } else { EditorGUILayout.HelpBox("No variables exist!", MessageType.Info); ID = -1; variableNumber = -1; } return(ID); }
private void ShowVarGUI(List <ActionParameter> parameters, ActionParameter parameter) { if (parameters == null || parameters.Count == 0 || parameter == null) { EditorGUILayout.HelpBox("No parameters exist! Please define one in the Inspector.", MessageType.Warning); parameterLabel = ""; return; } parameterLabel = parameter.label; EditorGUILayout.BeginHorizontal(); if (parameter.parameterType == ParameterType.Boolean) { boolCondition = (BoolCondition)EditorGUILayout.EnumPopup(boolCondition); boolValue = (BoolValue)EditorGUILayout.EnumPopup(boolValue); } else if (parameter.parameterType == ParameterType.Integer) { intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition); intValue = EditorGUILayout.IntField(intValue); } else if (parameter.parameterType == ParameterType.Float) { intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition); floatValue = EditorGUILayout.FloatField(floatValue); } else if (parameter.parameterType == ParameterType.String) { boolCondition = (BoolCondition)EditorGUILayout.EnumPopup(boolCondition); stringValue = EditorGUILayout.TextField(stringValue); } else if (parameter.parameterType == ParameterType.GameObject) { compareObject = (GameObject)EditorGUILayout.ObjectField("Is equal to:", compareObject, typeof(GameObject), true); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); compareObjectConstantID = FieldToID(compareObject, compareObjectConstantID); compareObject = IDToField(compareObject, compareObjectConstantID, false); } else if (parameter.parameterType == ParameterType.UnityObject) { compareUnityObject = (Object)EditorGUILayout.ObjectField("Is equal to:", compareUnityObject, typeof(Object), true); } else if (parameter.parameterType == ParameterType.GlobalVariable) { if (AdvGame.GetReferences().variablesManager == null || AdvGame.GetReferences().variablesManager.vars == null || AdvGame.GetReferences().variablesManager.vars.Count == 0) { EditorGUILayout.HelpBox("No Global variables exist!", MessageType.Info); } else { compareVariableID = ShowVarSelectorGUI(AdvGame.GetReferences().variablesManager.vars, compareVariableID); } } else if (parameter.parameterType == ParameterType.InventoryItem) { ShowInvSelectorGUI(compareVariableID); } else if (parameter.parameterType == ParameterType.LocalVariable) { if (isAssetFile) { EditorGUILayout.HelpBox("Cannot compare local variables in an asset file.", MessageType.Warning); } else if (KickStarter.localVariables == null || KickStarter.localVariables.localVars == null || KickStarter.localVariables.localVars.Count == 0) { EditorGUILayout.HelpBox("No Local variables exist!", MessageType.Info); } else { compareVariableID = ShowVarSelectorGUI(KickStarter.localVariables.localVars, compareVariableID); } } else if (parameter.parameterType == ParameterType.Vector3) { vectorCondition = (VectorCondition)EditorGUILayout.EnumPopup("Condition:", vectorCondition); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (vectorCondition == VectorCondition.MagnitudeGreaterThan) { floatValue = EditorGUILayout.FloatField("Float:", floatValue); } else if (vectorCondition == VectorCondition.EqualTo) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Vector3:", GUILayout.MaxWidth(60f)); vector3Value = EditorGUILayout.Vector3Field("", vector3Value); EditorGUILayout.EndHorizontal(); } } EditorGUILayout.EndHorizontal(); }
private int ShowVarGUI(List <ActionParameter> parameters, List <GVar> _vars, int ID, bool changeID) { VariableType showType = VariableType.Boolean; if (changeID) { if (_vars != null && _vars.Count > 0) { ID = ShowVarSelectorGUI(_vars, ID, "Variable:"); variableNumber = Mathf.Min(variableNumber, _vars.Count - 1); getVarMethod = (GetVarMethod)EditorGUILayout.EnumPopup("Compare with:", getVarMethod); showType = _vars[variableNumber].type; } else { EditorGUILayout.HelpBox("No variables exist!", MessageType.Info); ID = -1; variableNumber = -1; return(ID); } placeholderType = showType; } else { showType = placeholderType; } switch (showType) { case VariableType.Boolean: boolCondition = (BoolCondition)EditorGUILayout.EnumPopup("Condition:", boolCondition); if (getVarMethod == GetVarMethod.EnteredValue) { checkParameterID = Action.ChooseParameterGUI("Boolean:", parameters, checkParameterID, ParameterType.Boolean); if (checkParameterID < 0) { boolValue = (BoolValue)EditorGUILayout.EnumPopup("Boolean:", boolValue); } } break; case VariableType.Integer: intCondition = (IntCondition)EditorGUILayout.EnumPopup("Condition:", intCondition); if (getVarMethod == GetVarMethod.EnteredValue) { checkParameterID = Action.ChooseParameterGUI("Integer:", parameters, checkParameterID, ParameterType.Integer); if (checkParameterID < 0) { intValue = EditorGUILayout.IntField("Integer:", intValue); } } break; case VariableType.Float: intCondition = (IntCondition)EditorGUILayout.EnumPopup("Condition:", intCondition); if (getVarMethod == GetVarMethod.EnteredValue) { checkParameterID = Action.ChooseParameterGUI("Float:", parameters, checkParameterID, ParameterType.Float); if (checkParameterID < 0) { floatValue = EditorGUILayout.FloatField("Float:", floatValue); } } break; case VariableType.PopUp: intCondition = (IntCondition)EditorGUILayout.EnumPopup("Condition:", intCondition); if (getVarMethod == GetVarMethod.EnteredValue) { checkParameterID = Action.ChooseParameterGUI("Value:", parameters, checkParameterID, ParameterType.Integer); if (checkParameterID < 0) { if (changeID && _vars != null && _vars.Count > variableNumber) { string[] popUpLabels = _vars[variableNumber].GenerateEditorPopUpLabels(); intValue = EditorGUILayout.Popup("Value:", intValue, popUpLabels); placeholderPopUpLabelDataID = _vars[variableNumber].popUpID; } else if (!changeID && AdvGame.GetReferences().variablesManager != null) { // Parameter override placeholderPopUpLabelDataID = AdvGame.GetReferences().variablesManager.ShowPlaceholderPresetData(placeholderPopUpLabelDataID); PopUpLabelData popUpLabelData = AdvGame.GetReferences().variablesManager.GetPopUpLabelData(placeholderPopUpLabelDataID); if (popUpLabelData != null && placeholderPopUpLabelDataID > 0) { // Show placeholder labels intValue = EditorGUILayout.Popup("Index value:", intValue, popUpLabelData.GenerateEditorPopUpLabels()); } else { intValue = EditorGUILayout.IntField("Index value:", intValue); } } else { intValue = EditorGUILayout.IntField("Index value:", intValue); } } } break; case VariableType.String: boolCondition = (BoolCondition)EditorGUILayout.EnumPopup("Condition:", boolCondition); if (getVarMethod == GetVarMethod.EnteredValue) { checkParameterID = Action.ChooseParameterGUI("String:", parameters, checkParameterID, ParameterType.String); if (checkParameterID < 0) { stringValue = EditorGUILayout.TextField("String:", stringValue); } } checkCase = EditorGUILayout.Toggle("Case-sensitive?", checkCase); break; case VariableType.Vector3: vectorCondition = (VectorCondition)EditorGUILayout.EnumPopup("Condition:", vectorCondition); if (getVarMethod == GetVarMethod.EnteredValue) { if (vectorCondition == VectorCondition.MagnitudeGreaterThan) { checkParameterID = Action.ChooseParameterGUI("Float:", parameters, checkParameterID, ParameterType.Float); if (checkParameterID < 0) { floatValue = EditorGUILayout.FloatField("Float:", floatValue); } } else if (vectorCondition == VectorCondition.EqualTo) { checkParameterID = Action.ChooseParameterGUI("Vector3:", parameters, checkParameterID, ParameterType.Vector3); if (checkParameterID < 0) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Vector3:", GUILayout.MaxWidth(60f)); vector3Value = EditorGUILayout.Vector3Field("", vector3Value); EditorGUILayout.EndHorizontal(); } } } break; default: break; } if (getVarMethod == GetVarMethod.GlobalVariable) { if (AdvGame.GetReferences().variablesManager == null || AdvGame.GetReferences().variablesManager.vars == null || AdvGame.GetReferences().variablesManager.vars.Count == 0) { EditorGUILayout.HelpBox("No Global variables exist!", MessageType.Info); } else { checkParameterID = Action.ChooseParameterGUI("Global variable:", parameters, checkParameterID, ParameterType.GlobalVariable); if (checkParameterID < 0) { compareVariableID = ShowVarSelectorGUI(AdvGame.GetReferences().variablesManager.vars, compareVariableID, "Global variable:"); } } } else if (getVarMethod == GetVarMethod.LocalVariable) { if (localVariables == null || localVariables.localVars == null || localVariables.localVars.Count == 0) { EditorGUILayout.HelpBox("No Local variables exist!", MessageType.Info); } else { checkParameterID = Action.ChooseParameterGUI("Local variable:", parameters, checkParameterID, ParameterType.LocalVariable); if (checkParameterID < 0) { compareVariableID = ShowVarSelectorGUI(localVariables.localVars, compareVariableID, "Local variable:"); } } } else if (getVarMethod == GetVarMethod.ComponentVariable) { checkParameterID = Action.ChooseParameterGUI("Component variable:", parameters, checkParameterID, ParameterType.ComponentVariable); if (checkParameterID < 0) { compareVariables = (Variables)EditorGUILayout.ObjectField("Component", compareVariables, typeof(Variables), true); compareVariablesConstantID = FieldToID <Variables> (compareVariables, compareVariablesConstantID); compareVariables = IDToField <Variables> (compareVariables, compareVariablesConstantID, false); if (compareVariables != null) { compareVariableID = ShowVarSelectorGUI(compareVariables.vars, compareVariableID, "Component variable:"); } } } return(ID); }