示例#1
0
        private int ShowVarGUI(List <InvVar> attributes, int ID, bool changeID)
        {
            if (attributes.Count > 0)
            {
                if (changeID)
                {
                    ID = ShowAttributeSelectorGUI(attributes, ID);
                }

                attributeNumber = Mathf.Min(attributeNumber, attributes.Count - 1);

                EditorGUILayout.BeginHorizontal();

                if (attributes [attributeNumber].type == VariableType.Boolean)
                {
                    boolCondition = (BoolCondition)EditorGUILayout.EnumPopup(boolCondition);
                    EditorGUILayout.LabelField("Boolean:", GUILayout.MaxWidth(60f));
                    boolValue = (BoolValue)EditorGUILayout.EnumPopup(boolValue);
                }
                else if (attributes [attributeNumber].type == VariableType.Integer)
                {
                    intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);
                    EditorGUILayout.LabelField("Integer:", GUILayout.MaxWidth(60f));
                    intValue = EditorGUILayout.IntField(intValue);
                }
                else if (attributes [attributeNumber].type == VariableType.PopUp)
                {
                    intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);
                    EditorGUILayout.LabelField("Value:", GUILayout.MaxWidth(60f));
                    intValue = EditorGUILayout.Popup(intValue, attributes [attributeNumber].popUps);
                }
                else if (attributes [attributeNumber].type == VariableType.Float)
                {
                    intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);
                    EditorGUILayout.LabelField("Float:", GUILayout.MaxWidth(60f));
                    floatValue = EditorGUILayout.FloatField(floatValue);
                }
                else if (attributes [attributeNumber].type == VariableType.String)
                {
                    boolCondition = (BoolCondition)EditorGUILayout.EnumPopup(boolCondition);
                    EditorGUILayout.LabelField("String:", GUILayout.MaxWidth(60f));
                    stringValue = EditorGUILayout.TextField(stringValue);
                }

                EditorGUILayout.EndHorizontal();

                if (attributes [attributeNumber].type == VariableType.String)
                {
                    checkCase = EditorGUILayout.Toggle("Case-senstive?", checkCase);
                }
            }
            else
            {
                EditorGUILayout.HelpBox("No variables exist!", MessageType.Info);
                ID = -1;
                attributeNumber = -1;
            }

            return(ID);
        }
        override public void ShowGUI(List <ActionParameter> parameters)
        {
            saveCheck = (SaveCheck)EditorGUILayout.EnumPopup("Check to make:", saveCheck);
            if (saveCheck == SaveCheck.NumberOfSaveGames)
            {
                includeAutoSaves = EditorGUILayout.Toggle("Include auto-save?", includeAutoSaves);
            }

            if (saveCheck == SaveCheck.IsSlotEmpty)
            {
                checkParameterID = Action.ChooseParameterGUI("Save ID:", parameters, checkParameterID, ParameterType.Integer);
                if (checkParameterID < 0)
                {
                    intValue = EditorGUILayout.IntField("Save ID:", intValue);
                }
            }
            else if (saveCheck != SaveCheck.IsSavingPossible)
            {
                intCondition     = (IntCondition)EditorGUILayout.EnumPopup("Value is:", intCondition);
                checkParameterID = Action.ChooseParameterGUI("Integer:", parameters, checkParameterID, ParameterType.Integer);
                if (checkParameterID < 0)
                {
                    intValue = EditorGUILayout.IntField("Integer:", intValue);
                }
            }
        }
        override public void ShowGUI(List <ActionParameter> parameters)
        {
            sceneToCheck  = (SceneToCheck)EditorGUILayout.EnumPopup("Check previous or current:", sceneToCheck);
            chooseSceneBy = (ChooseSceneBy)EditorGUILayout.EnumPopup("Choose scene by:", chooseSceneBy);

            EditorGUILayout.BeginHorizontal();
            if (chooseSceneBy == ChooseSceneBy.Name)
            {
                EditorGUILayout.LabelField("Scene name is:", GUILayout.Width(100f));
                intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);

                sceneNameParameterID = Action.ChooseParameterGUI("", parameters, sceneNameParameterID, ParameterType.String);
                if (sceneNameParameterID < 0)
                {
                    sceneName = EditorGUILayout.TextField(sceneName);
                }
            }
            else
            {
                EditorGUILayout.LabelField("Scene number is:", GUILayout.Width(100f));
                intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);

                sceneNumberParameterID = Action.ChooseParameterGUI("", parameters, sceneNumberParameterID, ParameterType.Integer);
                if (sceneNumberParameterID < 0)
                {
                    sceneNumber = EditorGUILayout.IntField(sceneNumber);
                }
            }
            EditorGUILayout.EndHorizontal();
        }
        override public void ShowGUI(List <ActionParameter> parameters)
        {
            dragParameterID = Action.ChooseParameterGUI("Drag object:", parameters, dragParameterID, ParameterType.GameObject);
            if (dragParameterID >= 0)
            {
                dragConstantID = 0;
                dragObject     = null;
            }
            else
            {
                dragObject = (Moveable_Drag)EditorGUILayout.ObjectField("Drag object:", dragObject, typeof(Moveable_Drag), true);

                dragConstantID = FieldToID <Moveable_Drag> (dragObject, dragConstantID);
                dragObject     = IDToField <Moveable_Drag> (dragObject, dragConstantID, false);

                if (dragObject != null && dragObject.dragMode != DragMode.LockToTrack)
                {
                    EditorGUILayout.HelpBox("The chosen Drag object must be in 'Lock To Track' mode", MessageType.Warning);
                }
            }

            condition = (IntCondition)EditorGUILayout.EnumPopup("Condition:", condition);

            checkPositionParameterID = Action.ChooseParameterGUI("Position:", parameters, checkPositionParameterID, ParameterType.Float);
            if (checkPositionParameterID < 0)
            {
                checkPosition = EditorGUILayout.Slider("Position:", checkPosition, 0f, 1f);
            }

            if (condition == IntCondition.EqualTo || condition == IntCondition.NotEqualTo)
            {
                errorMargin = EditorGUILayout.Slider("Error margin:", errorMargin, 0f, 1f);
            }
        }
        override public void ShowGUI(List <ActionParameter> parameters)
        {
            menuToCheckParameterID = Action.ChooseParameterGUI("Menu containing element:", parameters, menuToCheckParameterID, ParameterType.String);
            if (menuToCheckParameterID < 0)
            {
                menuToCheck = EditorGUILayout.TextField("Menu containing element:", menuToCheck);
            }

            elementToCheckParameterID = Action.ChooseParameterGUI("Element to check:", parameters, elementToCheckParameterID, ParameterType.String);
            if (elementToCheckParameterID < 0)
            {
                elementToCheck = EditorGUILayout.TextField("Element to check:", elementToCheck);
            }

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Number of slots is:", GUILayout.Width(145f));
            intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);
            EditorGUILayout.EndHorizontal();

            numToCheckParameterID = Action.ChooseParameterGUI("Value:", parameters, numToCheckParameterID, ParameterType.Integer);
            if (numToCheckParameterID < 0)
            {
                numToCheck = EditorGUILayout.IntField("Value:", numToCheck);
            }
        }
示例#6
0
    public void ShowGUI(int lowerValue, int upperValue)
    {
        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.LabelField("Previous scene:");
        intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);
        sceneNumber  = EditorGUILayout.IntField(sceneNumber);

        EditorGUILayout.EndHorizontal();

        if (lowerValue > upperValue || lowerValue == upperValue)
        {
            lowerValue = upperValue;
        }

        resultActionTrue = (Action.ResultAction)EditorGUILayout.EnumPopup("If condition is met:", (Action.ResultAction)resultActionTrue);
        if (resultActionTrue == Action.ResultAction.RunCutscene)
        {
            linkedCutsceneTrue = (Cutscene)EditorGUILayout.ObjectField("Cutscene to run:", linkedCutsceneTrue, typeof(Cutscene), true);
        }
        else if (resultActionTrue == Action.ResultAction.Skip)
        {
            skipActionTrue = EditorGUILayout.IntSlider("Action # to skip to:", skipActionTrue, lowerValue, upperValue);
        }

        resultActionFail = (Action.ResultAction)EditorGUILayout.EnumPopup("If condition is not met:", (Action.ResultAction)resultActionFail);
        if (resultActionFail == Action.ResultAction.RunCutscene)
        {
            linkedCutsceneFail = (Cutscene)EditorGUILayout.ObjectField("Cutscene to run:", linkedCutsceneFail, typeof(Cutscene), true);
        }
        else if (resultActionFail == Action.ResultAction.Skip)
        {
            skipActionFail = EditorGUILayout.IntSlider("Action # to skip to:", skipActionFail, lowerValue, upperValue);
        }
    }
示例#7
0
        /**
         * <summary>Creates a new instance of the 'Save: Check' Action, set to query the number of profiles</summary>
         * <param name = "numSaves">The number of profiles to check for</param>
         * <param name = "condition">The condition to query</param>
         * <returns>The generated Action</returns>
         */
        public static ActionSaveCheck CreateNew_NumberOfProfiles(int numProfiles, IntCondition condition = IntCondition.EqualTo)
        {
            ActionSaveCheck newAction = (ActionSaveCheck)CreateInstance <ActionSaveCheck>();

            newAction.saveCheck    = SaveCheck.NumberOfProfiles;
            newAction.intValue     = numProfiles;
            newAction.intCondition = condition;
            return(newAction);
        }
示例#8
0
        public override void ShowGUI(List <ActionParameter> parameters)
        {
            saveCheck = (SaveCheck)EditorGUILayout.EnumPopup("Check to make:", saveCheck);
            if (saveCheck == SaveCheck.NumberOfSaveGames)
            {
                includeAutoSaves = EditorGUILayout.Toggle("Include auto-save?", includeAutoSaves);
            }

            if (saveCheck == SaveCheck.IsSlotEmpty)
            {
                checkByElementIndex = EditorGUILayout.Toggle("Check by menu slot index?", checkByElementIndex);

                string intValueLabel = (checkByElementIndex) ? "SavesList slot index:" : "Save ID:";
                checkParameterID = Action.ChooseParameterGUI(intValueLabel, parameters, checkParameterID, ParameterType.Integer);
                if (checkParameterID < 0)
                {
                    intValue = EditorGUILayout.IntField(intValueLabel, intValue);
                }
            }
            else if (saveCheck == SaveCheck.DoesProfileExist)
            {
                checkByElementIndex = EditorGUILayout.ToggleLeft("Check by menu slot index?", checkByElementIndex);

                string intValueLabel = (checkByElementIndex) ? "ProfilesList slot index:" : "Profile ID:";
                checkParameterID = Action.ChooseParameterGUI(intValueLabel, parameters, checkParameterID, ParameterType.Integer);
                if (checkParameterID < 0)
                {
                    intValue = EditorGUILayout.IntField(intValueLabel, intValue);
                }

                if (checkByElementIndex)
                {
                    EditorGUILayout.Space();
                    menuName    = EditorGUILayout.TextField("Menu with ProfilesList:", menuName);
                    elementName = EditorGUILayout.TextField("ProfilesList element:", elementName);
                }
            }
            else if (saveCheck == SaveCheck.DoesProfileNameExist)
            {
                profileVarID = AdvGame.GlobalVariableGUI("String variable with name:", profileVarID, VariableType.String);
            }
            else if (saveCheck != SaveCheck.IsSavingPossible)
            {
                intCondition     = (IntCondition)EditorGUILayout.EnumPopup("Value is:", intCondition);
                checkParameterID = Action.ChooseParameterGUI("Integer:", parameters, checkParameterID, ParameterType.Integer);
                if (checkParameterID < 0)
                {
                    intValue = EditorGUILayout.IntField("Integer:", intValue);
                }
            }
        }
示例#9
0
        override public void ShowGUI(List <ActionParameter> parameters)
        {
            checkType = (InputCheckType)EditorGUILayout.EnumPopup("Check type:", checkType);

            parameterID = Action.ChooseParameterGUI(checkType.ToString() + " name:", parameters, parameterID, ParameterType.String);
            if (parameterID < 0)
            {
                inputName = EditorGUILayout.TextField(checkType.ToString() + " name:", inputName);
            }

            if (checkType == InputCheckType.Axis)
            {
                EditorGUILayout.BeginHorizontal();
                axisCondition = (IntCondition)EditorGUILayout.EnumPopup(axisCondition);
                axisValue     = EditorGUILayout.FloatField(axisValue);
                EditorGUILayout.EndHorizontal();
            }
        }
示例#10
0
        override public void ShowGUI()
        {
            chooseSceneBy = (ChooseSceneBy)EditorGUILayout.EnumPopup("Choose scene by:", chooseSceneBy);

            EditorGUILayout.BeginHorizontal();
            sceneToCheck = (SceneToCheck)EditorGUILayout.EnumPopup(sceneToCheck);
            if (chooseSceneBy == ChooseSceneBy.Name)
            {
                EditorGUILayout.LabelField("scene name is:", GUILayout.Width(100f));
                intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);
                sceneName    = EditorGUILayout.TextField(sceneName);
            }
            else
            {
                EditorGUILayout.LabelField("scene number is:", GUILayout.Width(100f));
                intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);
                sceneNumber  = EditorGUILayout.IntField(sceneNumber);
            }
            EditorGUILayout.EndHorizontal();
        }
示例#11
0
        public override void ShowGUI(List <ActionParameter> parameters)
        {
            if (KickStarter.settingsManager != null && KickStarter.settingsManager.playerSwitching == PlayerSwitching.Allow)
            {
                playerParameterID = ChooseParameterGUI("Player:", parameters, playerParameterID, ParameterType.Integer);
                if (playerParameterID < 0)
                {
                    playerID = ChoosePlayerGUI(playerID, true);
                }
            }

            sceneToCheck  = (SceneToCheck)EditorGUILayout.EnumPopup("Check type:", sceneToCheck);
            chooseSceneBy = (ChooseSceneBy)EditorGUILayout.EnumPopup("Choose scene by:", chooseSceneBy);

            EditorGUILayout.BeginHorizontal();
            if (chooseSceneBy == ChooseSceneBy.Name)
            {
                EditorGUILayout.LabelField("Scene name is:", GUILayout.Width(100f));
                intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);

                sceneNameParameterID = ChooseParameterGUI(string.Empty, parameters, sceneNameParameterID, ParameterType.String);
                if (sceneNameParameterID < 0)
                {
                    sceneName = EditorGUILayout.TextField(sceneName);
                }
            }
            else
            {
                EditorGUILayout.LabelField("Scene number is:", GUILayout.Width(100f));
                intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);

                sceneNumberParameterID = ChooseParameterGUI(string.Empty, parameters, sceneNumberParameterID, ParameterType.Integer);
                if (sceneNumberParameterID < 0)
                {
                    sceneNumber = EditorGUILayout.IntField(sceneNumber);
                }
            }
            EditorGUILayout.EndHorizontal();
        }
示例#12
0
        /**
         * <summary>Creates a new instance of the 'Save: Check' Action, set to query the number of save files</summary>
         * <param name = "numSaves">The number of save files to check for</param>
         * <param name = "includeAutosave">If True, the Autosave will be included in the total number of save files</param>
         * <param name = "condition">The condition to query</param>
         * <returns>The generated Action</returns>
         */
        public static ActionSaveCheck CreateNew_NumberOfSaveGames(int numSaves, bool includeAutosave = true, IntCondition condition = IntCondition.EqualTo)
        {
            ActionSaveCheck newAction = (ActionSaveCheck)CreateInstance <ActionSaveCheck>();

            newAction.saveCheck        = SaveCheck.NumberOfSaveGames;
            newAction.intValue         = numSaves;
            newAction.intCondition     = condition;
            newAction.includeAutoSaves = includeAutosave;
            return(newAction);
        }
示例#13
0
        public override void ShowGUI(List<ActionParameter> parameters)
        {
            dragParameterID = Action.ChooseParameterGUI ("Drag object:", parameters, dragParameterID, ParameterType.GameObject);
            if (dragParameterID >= 0)
            {
                dragConstantID = 0;
                dragObject = null;
            }
            else
            {
                dragObject = (Moveable_Drag) EditorGUILayout.ObjectField ("Drag object:", dragObject, typeof (Moveable_Drag), true);

                dragConstantID = FieldToID <Moveable_Drag> (dragObject, dragConstantID);
                dragObject = IDToField <Moveable_Drag> (dragObject, dragConstantID, false);

                if (dragObject != null && dragObject.dragMode != DragMode.LockToTrack)
                {
                    EditorGUILayout.HelpBox ("The chosen Drag object must be in 'Lock To Track' mode", MessageType.Warning);
                }
            }

            condition = (IntCondition) EditorGUILayout.EnumPopup ("Condition:", condition);

            checkPositionParameterID = Action.ChooseParameterGUI ("Position:", parameters, checkPositionParameterID, ParameterType.Float);
            if (checkPositionParameterID < 0)
            {
                checkPosition = EditorGUILayout.Slider ("Position:", checkPosition, 0f, 1f);
            }

            if (condition == IntCondition.EqualTo || condition == IntCondition.NotEqualTo)
            {
                errorMargin = EditorGUILayout.Slider ("Error margin:", errorMargin, 0f, 1f);
            }
        }
        override public void ShowGUI(List <ActionParameter> parameters)
        {
            if (inventoryManager == null && AdvGame.GetReferences().inventoryManager)
            {
                inventoryManager = AdvGame.GetReferences().inventoryManager;
            }
            if (settingsManager == null && AdvGame.GetReferences().settingsManager)
            {
                settingsManager = AdvGame.GetReferences().settingsManager;
            }

            invCheckType = (InvCheckType)EditorGUILayout.EnumPopup("Check to make:", invCheckType);
            if (invCheckType == InvCheckType.NumberOfItemsCarrying)
            {
                intCondition = (IntCondition)EditorGUILayout.EnumPopup("Count is:", intCondition);

                intValueParameterID = Action.ChooseParameterGUI(intCondition.ToString() + ":", parameters, intValueParameterID, ParameterType.Integer);
                if (intValueParameterID < 0)
                {
                    intValue = EditorGUILayout.IntField(intCondition.ToString() + ":", intValue);
                }

                SetPlayerGUI();
                return;
            }

            if (inventoryManager)
            {
                // Create a string List of the field's names (for the PopUp box)
                List <string> labelList = new List <string>();

                int i = 0;
                if (parameterID == -1)
                {
                    invNumber = -1;
                }

                if (inventoryManager.items.Count > 0)
                {
                    foreach (InvItem _item in inventoryManager.items)
                    {
                        labelList.Add(_item.label);

                        // If an item has been removed, make sure selected variable is still valid
                        if (_item.id == invID)
                        {
                            invNumber = i;
                        }

                        i++;
                    }

                    if (invNumber == -1)
                    {
                        // Wasn't found (item was possibly deleted), so revert to zero
                        ACDebug.LogWarning("Previously chosen item no longer exists!");

                        invNumber = 0;
                        invID     = 0;
                    }

                    //
                    parameterID = Action.ChooseParameterGUI("Inventory item:", parameters, parameterID, ParameterType.InventoryItem);
                    if (parameterID >= 0)
                    {
                        invNumber = Mathf.Min(invNumber, inventoryManager.items.Count - 1);
                        invID     = -1;
                    }
                    else
                    {
                        invNumber = EditorGUILayout.Popup("Inventory item:", invNumber, labelList.ToArray());
                        invID     = inventoryManager.items[invNumber].id;
                    }
                    //

                    if (inventoryManager.items[invNumber].canCarryMultiple)
                    {
                        doCount = EditorGUILayout.Toggle("Query count?", doCount);

                        if (doCount)
                        {
                            intCondition        = (IntCondition)EditorGUILayout.EnumPopup("Count is:", intCondition);
                            intValueParameterID = Action.ChooseParameterGUI(intCondition.ToString() + ":", parameters, intValueParameterID, ParameterType.Integer);
                            if (intValueParameterID < 0)
                            {
                                intValue = EditorGUILayout.IntField(intCondition.ToString() + ":", intValue);

                                if (intValue < 1)
                                {
                                    intValue = 1;
                                }
                            }
                        }
                    }
                    else
                    {
                        doCount = false;
                    }

                    SetPlayerGUI();
                }
                else
                {
                    EditorGUILayout.LabelField("No inventory items exist!");
                    invID     = -1;
                    invNumber = -1;
                }
            }
            else
            {
                EditorGUILayout.HelpBox("An Inventory Manager must be assigned for this Action to work", MessageType.Warning);
            }
        }
示例#15
0
        public override void ShowGUI(List <ActionParameter> parameters)
        {
            dragParameterID = Action.ChooseParameterGUI("Drag object:", parameters, dragParameterID, ParameterType.GameObject);
            if (dragParameterID < 0 || method == TrackCheckMethod.WithinSnapRegion)
            {
                string label = (dragParameterID < 0) ? "Placeholder drag object:" : "Drag object";

                dragObject = (Moveable_Drag)EditorGUILayout.ObjectField(label, dragObject, typeof(Moveable_Drag), true);

                dragConstantID = FieldToID <Moveable_Drag> (dragObject, dragConstantID);
                dragObject     = IDToField <Moveable_Drag> (dragObject, dragConstantID, false);

                if (dragObject != null && dragObject.dragMode != DragMode.LockToTrack)
                {
                    EditorGUILayout.HelpBox("The chosen Drag object must be in 'Lock To Track' mode", MessageType.Warning);
                }
            }

            method = (TrackCheckMethod)EditorGUILayout.EnumPopup("Method:", method);
            if (method == TrackCheckMethod.PositionValue)
            {
                condition = (IntCondition)EditorGUILayout.EnumPopup("Condition:", condition);

                checkPositionParameterID = Action.ChooseParameterGUI("Position:", parameters, checkPositionParameterID, ParameterType.Float);
                if (checkPositionParameterID < 0)
                {
                    checkPosition = EditorGUILayout.Slider("Position:", checkPosition, 0f, 1f);
                }

                if (condition == IntCondition.EqualTo || condition == IntCondition.NotEqualTo)
                {
                    errorMargin = EditorGUILayout.Slider("Error margin:", errorMargin, 0f, 1f);
                }
            }
            else if (method == TrackCheckMethod.WithinSnapRegion)
            {
                if (dragObject == null)
                {
                    EditorGUILayout.HelpBox("A drag object must be assigned above.", MessageType.Warning);
                }
                else if (dragObject.track == null || dragObject.dragMode != DragMode.LockToTrack)
                {
                    EditorGUILayout.HelpBox("The chosen Drag object must have an assigned Track.", MessageType.Warning);
                }
                else if (!dragObject.track.doSnapping || dragObject.track.allTrackSnapData == null || dragObject.track.allTrackSnapData.Count == 0)
                {
                    EditorGUILayout.HelpBox("The chosen Drag object's Track has no snap points.", MessageType.Warning);
                }
                else
                {
                    snapParameterID = Action.ChooseParameterGUI("Snap ID:", parameters, snapParameterID, ParameterType.Integer);
                    if (snapParameterID < 0)
                    {
                        List <string> labelList = new List <string>();
                        int           snapIndex = 0;

                        for (int i = 0; i < dragObject.track.allTrackSnapData.Count; i++)
                        {
                            labelList.Add(dragObject.track.allTrackSnapData[i].EditorLabel);

                            if (dragObject.track.allTrackSnapData[i].ID == snapID)
                            {
                                snapIndex = i;
                            }
                        }

                        snapIndex = EditorGUILayout.Popup("Snap:", snapIndex, labelList.ToArray());
                        snapID    = dragObject.track.allTrackSnapData[snapIndex].ID;
                    }
                }
            }
        }
示例#16
0
        /**
         * <summary>Creates a new instance of the 'Input: Check' Action, set to check if a axis is held down</summary>
         * <param name = "axisName">The axis to check for</param>
         * <param name = "axisValue">The axis value to check for</param>
         * <param name = "condition">The condition to check for</param>
         * <returns>The generated Action</returns>
         */
        public static ActionInputCheck CreateNew_Axis(string axisName, float axisValue = 0.2f, IntCondition condition = IntCondition.MoreThan)
        {
            ActionInputCheck newAction = (ActionInputCheck)CreateInstance <ActionInputCheck>();

            newAction.checkType     = InputCheckType.Axis;
            newAction.inputName     = axisName;
            newAction.axisValue     = axisValue;
            newAction.axisCondition = condition;
            return(newAction);
        }
		override public void ShowGUI (List<ActionParameter> parameters)
		{
			dragObject = (Moveable_Drag) EditorGUILayout.ObjectField ("Drag object:", dragObject, typeof (Moveable_Drag), true);
			if (dragObject != null && dragObject.dragMode != DragMode.LockToTrack)
			{
				EditorGUILayout.HelpBox ("The chosen Drag object must be in 'Lock To Track' mode", MessageType.Warning);
			}

			EditorGUILayout.BeginHorizontal ();
			condition = (IntCondition) EditorGUILayout.EnumPopup (condition);
			checkPosition = EditorGUILayout.Slider (checkPosition, 0f, 1f);
			EditorGUILayout.EndHorizontal ();

			if (condition == IntCondition.EqualTo || condition == IntCondition.NotEqualTo)
			{
				errorMargin = EditorGUILayout.Slider ("Error margin:", errorMargin, 0f, 1f);
			}
		}
 public IntSearch(int?value, IntCondition condition = IntCondition.Equal, int?value2 = null) : base(value)
 {
     Condition = condition;
     Value2    = value2;
 }
示例#19
0
        public override void OnGUI(int WindowID)
        {
            if (inventoryManager == null && AdvGame.GetReferences().inventoryManager)
            {
                inventoryManager = AdvGame.GetReferences().inventoryManager;
            }
            if (settingsManager == null && AdvGame.GetReferences().settingsManager)
            {
                settingsManager = AdvGame.GetReferences().settingsManager;
            }

            if (inventoryManager)
            {
                // Create a string List of the field's names (for the PopUp box)
                List <string> labelList = new List <string>();

                int i = 0;
                if (parameterID == -1)
                {
                    invNumber = -1;
                }

                if (inventoryManager.items.Count > 0)
                {
                    foreach (InvItem _item in inventoryManager.items)
                    {
                        labelList.Add(_item.label);

                        // If an item has been removed, make sure selected variable is still valid
                        if (_item.id == invID)
                        {
                            invNumber = i;
                        }

                        i++;
                    }

                    if (invNumber == -1)
                    {
                        // Wasn't found (item was possibly deleted), so revert to zero
                        ACDebug.LogWarning("Previously chosen item no longer exists!");

                        invNumber = 0;
                        invID     = 0;
                    }


                    parameterID = AC.Action.ChooseParameterGUI("Inventory item:", parameters, parameterID, ParameterType.InventoryItem);
                    if (parameterID >= 0)
                    {
                        invNumber = Mathf.Min(invNumber, inventoryManager.items.Count - 1);
                        invID     = -1;
                    }
                    else
                    {
                        invNumber = EditorGUILayout.Popup("Inventory item:", invNumber, labelList.ToArray());
                        invID     = inventoryManager.items[invNumber].id;
                    }
                    //

                    if (inventoryManager.items[invNumber].canCarryMultiple)
                    {
                        doCount = EditorGUILayout.Toggle("Query count?", doCount);

                        if (doCount)
                        {
                            EditorGUILayout.BeginHorizontal();
                            EditorGUILayout.LabelField("Count is:", GUILayout.MaxWidth(70));
                            intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);
                            intValue     = EditorGUILayout.IntField(intValue);

                            if (intValue < 1)
                            {
                                intValue = 1;
                            }
                            EditorGUILayout.EndHorizontal();
                        }
                    }
                    else
                    {
                        doCount = false;
                    }

                    if (settingsManager != null && settingsManager.playerSwitching == PlayerSwitching.Allow && !settingsManager.shareInventory)
                    {
                        EditorGUILayout.Space();

                        setPlayer = EditorGUILayout.Toggle("Check specific player?", setPlayer);
                        if (setPlayer)
                        {
                            ChoosePlayerGUI();
                        }
                    }
                    else
                    {
                        setPlayer = false;
                    }
                }
                else
                {
                    EditorGUILayout.LabelField("No inventory items exist!");
                    invID     = -1;
                    invNumber = -1;
                }
            }
            else
            {
                EditorGUILayout.HelpBox("An Inventory Manager must be assigned for this Action to work", MessageType.Warning);
            }
        }
示例#20
0
        public override void ShowGUI(List<ActionParameter> parameters)
        {
            saveCheck = (SaveCheck) EditorGUILayout.EnumPopup ("Check to make:", saveCheck);
            if (saveCheck == SaveCheck.NumberOfSaveGames)
            {
                includeAutoSaves = EditorGUILayout.Toggle ("Include auto-save?", includeAutoSaves);
            }

            if (saveCheck != SaveCheck.IsSavingPossible)
            {
                intCondition = (IntCondition) EditorGUILayout.EnumPopup ("Value is:", intCondition);
                checkParameterID = Action.ChooseParameterGUI ("Integer:", parameters, checkParameterID, ParameterType.Integer);
                if (checkParameterID < 0)
                {
                    intValue = EditorGUILayout.IntField ("Integer:", intValue);
                }
            }
        }
		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 (parameters == null || parameters.Count == 0)
				{
					EditorGUILayout.BeginHorizontal ();
				}

				if (vars [variableNumber].type == VariableType.Boolean)
				{
					boolCondition = (BoolCondition) EditorGUILayout.EnumPopup (boolCondition);
					if (getVarMethod == GetVarMethod.EnteredValue)
					{
						checkParameterID = Action.ChooseParameterGUI ("Boolean:", parameters, checkParameterID, ParameterType.Boolean);
						if (checkParameterID < 0)
						{
							boolValue = (BoolValue) EditorGUILayout.EnumPopup ("Boolean:", boolValue);
						}
					}
				}
				else if (vars [variableNumber].type == VariableType.Integer)
				{
					intCondition = (IntCondition) EditorGUILayout.EnumPopup (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 (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 (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 (boolCondition);
					if (getVarMethod == GetVarMethod.EnteredValue)
					{
						checkParameterID = Action.ChooseParameterGUI ("String:", parameters, checkParameterID, ParameterType.String);
						if (checkParameterID < 0)
						{
							stringValue = EditorGUILayout.TextField ("String:", stringValue);
						}
					}
				}

				if (getVarMethod == GetVarMethod.GlobalVariable)
				{
					if (!variablesManager)
					{
						variablesManager = AdvGame.GetReferences ().variablesManager;
					}

					if (variablesManager == null || variablesManager.vars == null || 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 (variablesManager.vars, compareVariableID);
						}
					}
				}
				else if (getVarMethod == GetVarMethod.LocalVariable)
				{
					if (!localVariables && GameObject.FindWithTag (Tags.gameEngine) && GameObject.FindWithTag (Tags.gameEngine).GetComponent<LocalVariables>())
					{
						localVariables = GameObject.FindWithTag (Tags.gameEngine).GetComponent <LocalVariables>();
					}
					
					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);
						}
					}
				}

				if (parameters == null || parameters.Count == 0)
				{
					EditorGUILayout.EndHorizontal ();
				}
			}
			else
			{
				EditorGUILayout.HelpBox ("No variables exist!", MessageType.Info);
				ID = -1;
				variableNumber = -1;
			}

			return ID;
		}
示例#22
0
        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);

                compareObjectConstantID = FieldToID (compareObject, compareObjectConstantID);
                compareObject = IDToField (compareObject, compareObjectConstantID, false);
            }
            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);
                }
            }

            EditorGUILayout.EndHorizontal ();
        }
        /**
         * <summary>Creates a new instance of the 'Inventory: Check' Action, set to query how many items the player is carrying</summary>
         * <param name = "numItems">The number of items to check for</param>
         * <param name = "condition">The condition to check for</param>
         * <returns>The generated Action</returns>
         */
        public static ActionInventoryCheck CreateNew_NumberOfItemsCarrying(int numItems, IntCondition condition = IntCondition.EqualTo)
        {
            ActionInventoryCheck newAction = (ActionInventoryCheck)CreateInstance <ActionInventoryCheck>();

            newAction.invCheckType = InvCheckType.NumberOfItemsCarrying;
            newAction.intValue     = numItems;
            newAction.intCondition = condition;
            return(newAction);
        }
示例#24
0
        public override void ShowGUI()
        {
            sceneToCheck = (SceneToCheck) EditorGUILayout.EnumPopup ("Check previous or current:", sceneToCheck);
            chooseSceneBy = (ChooseSceneBy) EditorGUILayout.EnumPopup ("Choose scene by:", chooseSceneBy);

            EditorGUILayout.BeginHorizontal();
                if (chooseSceneBy == ChooseSceneBy.Name)
                {
                    EditorGUILayout.LabelField ("Scene name is:", GUILayout.Width (100f));
                    intCondition = (IntCondition) EditorGUILayout.EnumPopup (intCondition);
                    sceneName = EditorGUILayout.TextField (sceneName);
                }
                else
                {
                    EditorGUILayout.LabelField ("Scene number is:", GUILayout.Width (100f));
                    intCondition = (IntCondition) EditorGUILayout.EnumPopup (intCondition);
                    sceneNumber = EditorGUILayout.IntField (sceneNumber);
                }
            EditorGUILayout.EndHorizontal();
        }
示例#25
0
        public override void ShowGUI(List <ActionParameter> parameters)
        {
            bool showPlayerOptions = false;

            if (KickStarter.settingsManager != null && KickStarter.settingsManager.playerSwitching == PlayerSwitching.Allow)
            {
                playerParameterID = ChooseParameterGUI("Player:", parameters, playerParameterID, ParameterType.Integer);
                if (playerParameterID < 0)
                {
                    playerID          = ChoosePlayerGUI(playerID, true);
                    showPlayerOptions = (playerID >= 0);
                }
                else
                {
                    showPlayerOptions = true;
                }
            }

            if (showPlayerOptions)
            {
                sceneToCheck = (SceneToCheck)EditorGUILayout.EnumPopup("Check type:", sceneToCheck);
                if (chooseSceneByPlayerSwitching == -1)
                {
                    chooseSceneByPlayerSwitching = (int)chooseSceneBy;
                }
                ChooseSceneByPlayerSwitching csbps = (ChooseSceneByPlayerSwitching)chooseSceneByPlayerSwitching;
                csbps = (ChooseSceneByPlayerSwitching)EditorGUILayout.EnumPopup("Choose scene by:", csbps);
                chooseSceneByPlayerSwitching = (int)csbps;
                chooseSceneBy = (ChooseSceneBy)chooseSceneByPlayerSwitching;

                EditorGUILayout.BeginHorizontal();
                switch (csbps)
                {
                case ChooseSceneByPlayerSwitching.Name:
                    EditorGUILayout.LabelField("Scene name is:", GUILayout.Width(100f));
                    intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);

                    sceneNameParameterID = ChooseParameterGUI(string.Empty, parameters, sceneNameParameterID, ParameterType.String);
                    if (sceneNameParameterID < 0)
                    {
                        sceneName = EditorGUILayout.TextField(sceneName);
                    }
                    break;

                case ChooseSceneByPlayerSwitching.Number:
                    EditorGUILayout.LabelField("Scene number is:", GUILayout.Width(100f));
                    intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);

                    sceneNumberParameterID = ChooseParameterGUI(string.Empty, parameters, sceneNumberParameterID, ParameterType.Integer);
                    if (sceneNumberParameterID < 0)
                    {
                        sceneNumber = EditorGUILayout.IntField(sceneNumber);
                    }
                    break;

                default:
                    break;
                }
                EditorGUILayout.EndHorizontal();
            }
            else
            {
                sceneToCheck  = (SceneToCheck)EditorGUILayout.EnumPopup("Check type:", sceneToCheck);
                chooseSceneBy = (ChooseSceneBy)EditorGUILayout.EnumPopup("Choose scene by:", chooseSceneBy);

                EditorGUILayout.BeginHorizontal();
                switch (chooseSceneBy)
                {
                case ChooseSceneBy.Name:
                    EditorGUILayout.LabelField("Scene name is:", GUILayout.Width(100f));
                    intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);

                    sceneNameParameterID = ChooseParameterGUI(string.Empty, parameters, sceneNameParameterID, ParameterType.String);
                    if (sceneNameParameterID < 0)
                    {
                        sceneName = EditorGUILayout.TextField(sceneName);
                    }
                    break;

                case ChooseSceneBy.Number:
                    EditorGUILayout.LabelField("Scene number is:", GUILayout.Width(100f));
                    intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);

                    sceneNumberParameterID = ChooseParameterGUI(string.Empty, parameters, sceneNumberParameterID, ParameterType.Integer);
                    if (sceneNumberParameterID < 0)
                    {
                        sceneNumber = EditorGUILayout.IntField(sceneNumber);
                    }
                    break;

                default:
                    break;
                }
                EditorGUILayout.EndHorizontal();
            }
        }
        /**
         * <summary>Creates a new instance of the 'Menu: Check num slots' Action</summary>
         * <param name = "menuName">The name of the Menu</param>
         * <param name = "elementName">The name of the element</param>
         * <param name = "numSlots">The number of slots to check for</param>
         * <param name = "condition">The condition to query</param>
         * <returns>The generated Action</returns>
         */
        public static ActionMenuSlotCheck CreateNew(string menuName, string elementName, int numSlots, IntCondition condition = IntCondition.EqualTo)
        {
            ActionMenuSlotCheck newAction = (ActionMenuSlotCheck)CreateInstance <ActionMenuSlotCheck>();

            newAction.menuToCheck    = menuName;
            newAction.elementToCheck = elementName;
            newAction.intCondition   = condition;
            newAction.numToCheck     = numSlots;

            return(newAction);
        }
        public override void ShowGUI(List<ActionParameter> parameters)
        {
            if (inventoryManager == null && AdvGame.GetReferences ().inventoryManager)
            {
                inventoryManager = AdvGame.GetReferences ().inventoryManager;
            }
            if (settingsManager == null && AdvGame.GetReferences ().settingsManager)
            {
                settingsManager = AdvGame.GetReferences ().settingsManager;
            }

            if (inventoryManager)
            {
                // Create a string List of the field's names (for the PopUp box)
                List<string> labelList = new List<string>();

                int i = 0;
                if (parameterID == -1)
                {
                    invNumber = -1;
                }

                if (inventoryManager.items.Count > 0)
                {

                    foreach (InvItem _item in inventoryManager.items)
                    {
                        labelList.Add (_item.label);

                        // If an item has been removed, make sure selected variable is still valid
                        if (_item.id == invID)
                        {
                            invNumber = i;
                        }

                        i++;
                    }

                    if (invNumber == -1)
                    {
                        // Wasn't found (item was possibly deleted), so revert to zero
                        Debug.LogWarning ("Previously chosen item no longer exists!");

                        invNumber = 0;
                        invID = 0;
                    }

                    //
                    parameterID = Action.ChooseParameterGUI ("Inventory item:", parameters, parameterID, ParameterType.InventoryItem);
                    if (parameterID >= 0)
                    {
                        invNumber = Mathf.Min (invNumber, inventoryManager.items.Count-1);
                        invID = -1;
                    }
                    else
                    {
                        invNumber = EditorGUILayout.Popup ("Inventory item:", invNumber, labelList.ToArray());
                        invID = inventoryManager.items[invNumber].id;
                    }
                    //

                    if (inventoryManager.items[invNumber].canCarryMultiple)
                    {
                        doCount = EditorGUILayout.Toggle ("Query count?", doCount);

                        if (doCount)
                        {
                            EditorGUILayout.BeginHorizontal ();
                                EditorGUILayout.LabelField ("Count is:", GUILayout.MaxWidth (70));
                                intCondition = (IntCondition) EditorGUILayout.EnumPopup (intCondition);
                                intValue = EditorGUILayout.IntField (intValue);

                                if (intValue < 1)
                                {
                                    intValue = 1;
                                }
                            EditorGUILayout.EndHorizontal ();
                        }
                    }
                    else
                    {
                        doCount = false;
                    }

                    if (settingsManager != null && settingsManager.playerSwitching == PlayerSwitching.Allow && !settingsManager.shareInventory)
                    {
                        EditorGUILayout.Space ();

                        setPlayer = EditorGUILayout.Toggle ("Check specific player?", setPlayer);
                        if (setPlayer)
                        {
                            ChoosePlayerGUI ();
                        }
                    }
                    else
                    {
                        setPlayer = false;
                    }
                }
                else
                {
                    EditorGUILayout.LabelField ("No inventory items exist!");
                    invID = -1;
                    invNumber = -1;
                }
            }
            else
            {
                EditorGUILayout.HelpBox ("An Inventory Manager must be assigned for this Action to work", MessageType.Warning);
            }
        }
示例#28
0
    public void ShowGUI(int lowerValue, int upperValue)
    {
        if (!inventoryManager)
        {
            inventoryManager = AdvGame.GetReferences().inventoryManager;
        }

        if (inventoryManager)
        {
            // Create a string List of the field's names (for the PopUp box)
            List <string> labelList = new List <string>();

            int i = 0;
            invNumber = -1;

            if (inventoryManager.items.Count > 0)
            {
                foreach (InvItem _item in inventoryManager.items)
                {
                    labelList.Add(_item.label);

                    // If an item has been removed, make sure selected variable is still valid
                    if (_item.id == invID)
                    {
                        invNumber = i;
                    }

                    i++;
                }

                if (invNumber == -1)
                {
                    // Wasn't found (item was possibly deleted), so revert to zero
                    Debug.LogWarning("Previously chosen item no longer exists!");

                    invNumber = 0;
                    invID     = 0;
                }

                EditorGUILayout.BeginHorizontal();
                invNumber = EditorGUILayout.Popup("Inventory item:", invNumber, labelList.ToArray());
                invID     = inventoryManager.items[invNumber].id;
                EditorGUILayout.EndHorizontal();

                if (lowerValue > upperValue)
                {
                    lowerValue = upperValue;
                }
                else if (upperValue < lowerValue)
                {
                    upperValue = lowerValue;
                }

                if (inventoryManager.items[invNumber].canCarryMultiple)
                {
                    doCount = EditorGUILayout.Toggle("Query count?", doCount);

                    if (doCount)
                    {
                        EditorGUILayout.BeginHorizontal("");
                        EditorGUILayout.LabelField("Count is:", GUILayout.MaxWidth(70));
                        intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);
                        intValue     = EditorGUILayout.IntField(intValue);

                        if (intValue < 1)
                        {
                            intValue = 1;
                        }
                        EditorGUILayout.EndHorizontal();
                    }
                }
                else
                {
                    doCount = false;
                }

                if (doCount)
                {
                    resultActionTrue = (Action.ResultAction)EditorGUILayout.EnumPopup("If condition is met:", (Action.ResultAction)resultActionTrue);
                }
                else
                {
                    resultActionTrue = (Action.ResultAction)EditorGUILayout.EnumPopup("If player is carrying:", (Action.ResultAction)resultActionTrue);
                }

                if (resultActionTrue == Action.ResultAction.RunCutscene)
                {
                    linkedCutsceneTrue = (Cutscene)EditorGUILayout.ObjectField("Cutscene to trigger:", linkedCutsceneTrue, typeof(Cutscene), true);
                }
                else if (resultActionTrue == Action.ResultAction.Skip)
                {
                    skipActionTrue = EditorGUILayout.IntSlider("Action # to skip to:", skipActionTrue, lowerValue, upperValue);
                }

                if (doCount)
                {
                    resultActionFail = (Action.ResultAction)EditorGUILayout.EnumPopup("If condition is not met:", (Action.ResultAction)resultActionFail);
                }
                else
                {
                    resultActionFail = (Action.ResultAction)EditorGUILayout.EnumPopup("If player is not carrying:", (Action.ResultAction)resultActionFail);
                }

                if (resultActionFail == Action.ResultAction.RunCutscene)
                {
                    linkedCutsceneFail = (Cutscene)EditorGUILayout.ObjectField("Cutscene to trigger:", linkedCutsceneFail, typeof(Cutscene), true);
                }
                else if (resultActionFail == Action.ResultAction.Skip)
                {
                    skipActionFail = EditorGUILayout.IntSlider("Action # to skip to:", skipActionFail, lowerValue, upperValue);
                }
            }

            else
            {
                EditorGUILayout.LabelField("No inventory items exist!");
                invID     = -1;
                invNumber = -1;
            }
        }
    }
示例#29
0
        override public void ShowGUI(List <ActionParameter> parameters)
        {
            if (AdvGame.GetReferences().inventoryManager)
            {
                inventoryManager = AdvGame.GetReferences().inventoryManager;
            }

            if (inventoryManager)
            {
                // Create a string List of the field's names (for the PopUp box)
                List <string> labelList = new List <string>();

                int i = 0;
                if (invParameterID == -1)
                {
                    invNumber = -1;
                }

                if (inventoryManager.items.Count > 0)
                {
                    foreach (InvItem _item in inventoryManager.items)
                    {
                        labelList.Add(_item.label);
                        // If an item has been removed, make sure selected variable is still valid
                        if (_item.id == invID)
                        {
                            invNumber = i;
                        }

                        i++;
                    }

                    if (invNumber == -1)
                    {
                        // Wasn't found (item was possibly deleted), so revert to zero
                        ACDebug.LogWarning("Previously chosen item no longer exists!");

                        invNumber = 0;
                        invID     = 0;
                    }

                    useActive = EditorGUILayout.Toggle("Affect active container?", useActive);
                    if (!useActive)
                    {
                        parameterID = Action.ChooseParameterGUI("Container:", parameters, parameterID, ParameterType.GameObject);
                        if (parameterID >= 0)
                        {
                            constantID = 0;
                            container  = null;
                        }
                        else
                        {
                            container = (Container)EditorGUILayout.ObjectField("Container:", container, typeof(Container), true);

                            constantID = FieldToID <Container> (container, constantID);
                            container  = IDToField <Container> (container, constantID, false);
                        }
                    }

                    //
                    invParameterID = Action.ChooseParameterGUI("Item to check:", parameters, invParameterID, ParameterType.InventoryItem);
                    if (invParameterID >= 0)
                    {
                        invNumber = Mathf.Min(invNumber, inventoryManager.items.Count - 1);
                        invID     = -1;
                    }
                    else
                    {
                        invNumber = EditorGUILayout.Popup("Item to check:", invNumber, labelList.ToArray());
                        invID     = inventoryManager.items[invNumber].id;
                    }
                    //

                    if (inventoryManager.items[invNumber].canCarryMultiple)
                    {
                        doCount = EditorGUILayout.Toggle("Query count?", doCount);

                        if (doCount)
                        {
                            EditorGUILayout.BeginHorizontal("");
                            EditorGUILayout.LabelField("Count is:", GUILayout.MaxWidth(70));
                            intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);
                            intValue     = EditorGUILayout.IntField(intValue);

                            if (intValue < 1)
                            {
                                intValue = 1;
                            }
                            EditorGUILayout.EndHorizontal();
                        }
                    }
                    else
                    {
                        doCount = false;
                    }
                }

                else
                {
                    EditorGUILayout.LabelField("No inventory items exist!");
                    invID     = -1;
                    invNumber = -1;
                }
            }
        }
示例#30
0
		public override void ShowGUI (List<ActionParameter> parameters)
		{
			dragParameterID = Action.ChooseParameterGUI ("Drag object:", parameters, dragParameterID, ParameterType.GameObject);
			if (dragParameterID < 0 || method == TrackCheckMethod.WithinTrackRegion)
			{
				string label = (dragParameterID < 0) ? "Placeholder drag object:" : "Drag object";

				dragObject = (Moveable_Drag) EditorGUILayout.ObjectField (label, dragObject, typeof (Moveable_Drag), true);
				
				dragConstantID = FieldToID <Moveable_Drag> (dragObject, dragConstantID);
				dragObject = IDToField <Moveable_Drag> (dragObject, dragConstantID, false);
				
				if (dragObject != null && dragObject.dragMode != DragMode.LockToTrack)
				{
					EditorGUILayout.HelpBox ("The chosen Drag object must be in 'Lock To Track' mode", MessageType.Warning);
				}
			}

			dragTrackParameterID = Action.ChooseParameterGUI ("Track (optional):", parameters, dragTrackParameterID, ParameterType.GameObject);
			if (dragTrackParameterID < 0)
			{
				dragTrack = (DragTrack) EditorGUILayout.ObjectField ("Track (optional):", dragTrack, typeof (DragTrack), true);

				dragTrackConstantID = FieldToID<DragTrack> (dragTrack, dragTrackConstantID);
				dragTrack = IDToField<DragTrack> (dragTrack, dragTrackConstantID, false);
			}

			method = (TrackCheckMethod) EditorGUILayout.EnumPopup ("Method:", method);
			if (method == TrackCheckMethod.PositionValue)
			{
				condition = (IntCondition) EditorGUILayout.EnumPopup ("Condition:", condition);

				checkPositionParameterID = Action.ChooseParameterGUI ("Position:", parameters, checkPositionParameterID, ParameterType.Float);
				if (checkPositionParameterID < 0)
				{
					checkPosition = EditorGUILayout.Slider ("Position:", checkPosition, 0f, 1f);
				}

				if (condition == IntCondition.EqualTo || condition == IntCondition.NotEqualTo)
				{
					errorMargin = EditorGUILayout.Slider ("Error margin:", errorMargin, 0f, 1f);
				}
			}
			else if (method == TrackCheckMethod.WithinTrackRegion)
			{
				if (dragObject == null)
				{
					EditorGUILayout.HelpBox ("A drag object must be assigned above for snap regions to display.", MessageType.Info);
				}
				else if (dragObject.dragMode != DragMode.LockToTrack)
				{
					EditorGUILayout.HelpBox ("The chosen Drag object is not locked to a Track.", MessageType.Warning);
				}
				else
				{
					snapParameterID = Action.ChooseParameterGUI ("Region ID:", parameters, snapParameterID, ParameterType.Integer);
					if (snapParameterID < 0)
					{
						List<string> labelList = new List<string>();
						int snapIndex = 0;

						DragTrack track = (dragTrack != null) ? dragTrack : dragObject.track;
						if (track && track.allTrackSnapData != null && track.allTrackSnapData.Count > 0)
						{ 
							for (int i=0; i<track.allTrackSnapData.Count; i++)
							{
								labelList.Add (track.allTrackSnapData[i].EditorLabel);
							
								if (track.allTrackSnapData[i].ID == snapID)
								{
									snapIndex = i;
								}
							}
						
							snapIndex = EditorGUILayout.Popup ("Region:", snapIndex, labelList.ToArray ());
							snapID = track.allTrackSnapData[snapIndex].ID;
						}
						else
						{
							EditorGUILayout.HelpBox("The chosen Drag object's Track has no Regions defined.", MessageType.Warning);
						}
					}
				}
			}
		}
示例#31
0
    public void ShowGUI(int lowerValue, int upperValue)
    {
        if (!variablesManager)
        {
            variablesManager = AdvGame.GetReferences().variablesManager;
        }

        if (variablesManager)
        {
            // Create a string List of the field's names (for the PopUp box)
            List <string> labelList = new List <string>();

            int i = 0;
            variableNumber = -1;

            if (variablesManager.vars.Count > 0)
            {
                foreach (GVar _var in variablesManager.vars)
                {
                    labelList.Add(_var.label);

                    // If a GlobalVar variable has been removed, make sure selected variable is still valid
                    if (_var.id == variableID)
                    {
                        variableNumber = i;
                    }

                    i++;
                }

                if (variableNumber == -1)
                {
                    // Wasn't found (variable was deleted?), so revert to zero
                    Debug.LogWarning("Previously chosen variable no longer exists!");
                    variableNumber = 0;
                    variableID     = 0;
                }

                EditorGUILayout.BeginHorizontal();

                variableNumber = EditorGUILayout.Popup(variableNumber, labelList.ToArray());
                variableID     = variablesManager.vars[variableNumber].id;

                if (variablesManager.vars[variableNumber].type == VariableType.Boolean)
                {
                    boolCondition = (BoolCondition)EditorGUILayout.EnumPopup(boolCondition);
                    boolValue     = (BoolValue)EditorGUILayout.EnumPopup(boolValue);
                }
                else
                {
                    intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition);
                    intValue     = EditorGUILayout.IntField(intValue);
                }

                EditorGUILayout.EndHorizontal();

                if (lowerValue > upperValue || lowerValue == upperValue)
                {
                    lowerValue = upperValue;
                }

                resultActionTrue = (Action.ResultAction)EditorGUILayout.EnumPopup("If condition is met:", (Action.ResultAction)resultActionTrue);
                if (resultActionTrue == Action.ResultAction.RunCutscene)
                {
                    linkedCutsceneTrue = (Cutscene)EditorGUILayout.ObjectField("Cutscene to run:", linkedCutsceneTrue, typeof(Cutscene), true);
                }
                else if (resultActionTrue == Action.ResultAction.Skip)
                {
                    skipActionTrue = EditorGUILayout.IntSlider("Action # to skip to:", skipActionTrue, lowerValue, upperValue);
                }

                resultActionFail = (Action.ResultAction)EditorGUILayout.EnumPopup("If condition is not met:", (Action.ResultAction)resultActionFail);
                if (resultActionFail == Action.ResultAction.RunCutscene)
                {
                    linkedCutsceneFail = (Cutscene)EditorGUILayout.ObjectField("Cutscene to run:", linkedCutsceneFail, typeof(Cutscene), true);
                }
                else if (resultActionFail == Action.ResultAction.Skip)
                {
                    skipActionFail = EditorGUILayout.IntSlider("Action # to skip to:", skipActionFail, lowerValue, upperValue);
                }
            }
            else
            {
                EditorGUILayout.LabelField("No global variables exist!");
                variableID     = -1;
                variableNumber = -1;
            }
        }
    }
示例#32
0
		/**
		 * <summary>Creates a new instance of the 'Object: Check track position' Action</summary>
		 * <param name = "dragObject">The moveable object to query</param>
		 * <param name = "trackPosition">The track position to check for</param>
		 * <param name = "condition">The condition to make</param>
		 * <param name = "errorMargin">The maximum difference between the queried track position, and the true track position, for the condition to be met</param>
		 * <returns>The generated Action</returns>
		 */
		public static ActionTrackCheck CreateNew (Moveable_Drag dragObject, float trackPosition, IntCondition condition = IntCondition.MoreThan, float errorMargin = 0.05f)
		{
			ActionTrackCheck newAction = (ActionTrackCheck) CreateInstance <ActionTrackCheck>();
			newAction.method = TrackCheckMethod.PositionValue;
			newAction.dragObject = dragObject;
			newAction.checkPosition = trackPosition;
			newAction.errorMargin = errorMargin;
			return newAction;
		}
        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();
        }
 override public void ShowGUI(List <ActionParameter> parameters)
 {
     knotName      = EditorGUILayout.TextField("Knot/Stitch:", knotName);
     condition     = (IntCondition)EditorGUILayout.EnumPopup("Condition:", condition);
     compareNumber = EditorGUILayout.IntField("Number:", compareNumber);
 }
        public override void ShowGUI(List<ActionParameter> parameters)
        {
            menuToCheckParameterID = Action.ChooseParameterGUI ("Menu containing element:", parameters, menuToCheckParameterID, ParameterType.String);
            if (menuToCheckParameterID < 0)
            {
                menuToCheck = EditorGUILayout.TextField ("Menu containing element:", menuToCheck);
            }

            elementToCheckParameterID = Action.ChooseParameterGUI ("Element to check:", parameters, elementToCheckParameterID, ParameterType.String);
            if (elementToCheckParameterID < 0)
            {
                elementToCheck = EditorGUILayout.TextField ("Element to check:", elementToCheck);
            }

            EditorGUILayout.BeginHorizontal ();
            EditorGUILayout.LabelField ("Number of slots is:", GUILayout.Width (145f));
            intCondition = (IntCondition) EditorGUILayout.EnumPopup (intCondition);
            EditorGUILayout.EndHorizontal ();

            numToCheckParameterID = Action.ChooseParameterGUI ("Value:", parameters, numToCheckParameterID, ParameterType.Integer);
            if (numToCheckParameterID < 0)
            {
                numToCheck = EditorGUILayout.IntField ("Value:", numToCheck);
            }
        }
示例#36
0
        public override void ShowGUI(List<ActionParameter> parameters)
        {
            checkType = (InputCheckType) EditorGUILayout.EnumPopup ("Check type:" , checkType);

            if (checkType == InputCheckType.Axis || checkType == InputCheckType.Button)
            {
                parameterID = Action.ChooseParameterGUI (checkType.ToString () + " name:", parameters, parameterID, ParameterType.String);
                if (parameterID < 0)
                {
                    inputName = EditorGUILayout.TextField (checkType.ToString () + " name:", inputName);
                }

                if (checkType == InputCheckType.Axis)
                {
                    EditorGUILayout.BeginHorizontal ();
                    axisCondition = (IntCondition) EditorGUILayout.EnumPopup (axisCondition);
                    axisValue = EditorGUILayout.FloatField (axisValue);
                    EditorGUILayout.EndHorizontal ();
                }
            }
        }
示例#37
0
        /**
         * <summary>Creates a new instance of the 'Scene: Check attribute' Action, set to check a Float attribute</summary>
         * <param name = "attributeID">The ID number of the Float attribute</param>
         * <param name = "value">The attribute value to check for</param>
         * <param name = "condition">The condition to query</param>
         * <returns>The generated Action</returns>
         */
        public static ActionSceneCheckAttribute CreateNew(int attributeID, float value, IntCondition condition = IntCondition.EqualTo)
        {
            ActionSceneCheckAttribute newAction = (ActionSceneCheckAttribute)CreateInstance <ActionSceneCheckAttribute>();

            newAction.attributeID  = attributeID;
            newAction.floatValue   = value;
            newAction.intCondition = condition;
            return(newAction);
        }
示例#38
0
        public override void ShowGUI(List<ActionParameter> parameters)
        {
            if (AdvGame.GetReferences ().inventoryManager)
            {
                inventoryManager = AdvGame.GetReferences ().inventoryManager;
            }

            if (inventoryManager)
            {
                // Create a string List of the field's names (for the PopUp box)
                List<string> labelList = new List<string>();

                int i = 0;
                if (invParameterID == -1)
                {
                    invNumber = -1;
                }

                if (inventoryManager.items.Count > 0)
                {
                    foreach (InvItem _item in inventoryManager.items)
                    {
                        labelList.Add (_item.label);
                        // If an item has been removed, make sure selected variable is still valid
                        if (_item.id == invID)
                        {
                            invNumber = i;
                        }

                        i++;
                    }

                    if (invNumber == -1)
                    {
                        // Wasn't found (item was possibly deleted), so revert to zero
                        ACDebug.LogWarning ("Previously chosen item no longer exists!");

                        invNumber = 0;
                        invID = 0;
                    }

                    useActive = EditorGUILayout.Toggle ("Affect active container?", useActive);
                    if (!useActive)
                    {
                        parameterID = Action.ChooseParameterGUI ("Container:", parameters, parameterID, ParameterType.GameObject);
                        if (parameterID >= 0)
                        {
                            constantID = 0;
                            container = null;
                        }
                        else
                        {
                            container = (Container) EditorGUILayout.ObjectField ("Container:", container, typeof (Container), true);

                            constantID = FieldToID <Container> (container, constantID);
                            container = IDToField <Container> (container, constantID, false);
                        }

                    }

                    //
                    invParameterID = Action.ChooseParameterGUI ("Item to check:", parameters, invParameterID, ParameterType.InventoryItem);
                    if (invParameterID >= 0)
                    {
                        invNumber = Mathf.Min (invNumber, inventoryManager.items.Count-1);
                        invID = -1;
                    }
                    else
                    {
                        invNumber = EditorGUILayout.Popup ("Item to check:", invNumber, labelList.ToArray());
                        invID = inventoryManager.items[invNumber].id;
                    }
                    //

                    if (inventoryManager.items[invNumber].canCarryMultiple)
                    {
                        doCount = EditorGUILayout.Toggle ("Query count?", doCount);

                        if (doCount)
                        {
                            EditorGUILayout.BeginHorizontal ("");
                                EditorGUILayout.LabelField ("Count is:", GUILayout.MaxWidth (70));
                                intCondition = (IntCondition) EditorGUILayout.EnumPopup (intCondition);
                                intValue = EditorGUILayout.IntField (intValue);

                                if (intValue < 1)
                                {
                                    intValue = 1;
                                }
                            EditorGUILayout.EndHorizontal ();
                        }
                    }
                    else
                    {
                        doCount = false;
                    }
                }

                else
                {
                    EditorGUILayout.LabelField ("No inventory items exist!");
                    invID = -1;
                    invNumber = -1;
                }
            }
        }
示例#39
0
        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 (parameters == null || parameters.Count == 0)
                {
                    EditorGUILayout.BeginHorizontal();
                }

                if (vars [variableNumber].type == VariableType.Boolean)
                {
                    boolCondition = (BoolCondition)EditorGUILayout.EnumPopup(boolCondition);
                    if (getVarMethod == GetVarMethod.EnteredValue)
                    {
                        checkParameterID = Action.ChooseParameterGUI("Boolean:", parameters, checkParameterID, ParameterType.Boolean);
                        if (checkParameterID < 0)
                        {
                            boolValue = (BoolValue)EditorGUILayout.EnumPopup("Boolean:", boolValue);
                        }
                    }
                }
                else if (vars [variableNumber].type == VariableType.Integer)
                {
                    intCondition = (IntCondition)EditorGUILayout.EnumPopup(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(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(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(boolCondition);
                    if (getVarMethod == GetVarMethod.EnteredValue)
                    {
                        checkParameterID = Action.ChooseParameterGUI("String:", parameters, checkParameterID, ParameterType.String);
                        if (checkParameterID < 0)
                        {
                            stringValue = EditorGUILayout.TextField("String:", stringValue);
                        }
                    }
                }

                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 (KickStarter.localVariables == null || KickStarter.localVariables.localVars == null || KickStarter.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(KickStarter.localVariables.localVars, compareVariableID);
                        }
                    }
                }

                if (parameters == null || parameters.Count == 0)
                {
                    EditorGUILayout.EndHorizontal();
                }
            }
            else
            {
                EditorGUILayout.HelpBox("No variables exist!", MessageType.Info);
                ID             = -1;
                variableNumber = -1;
            }

            return(ID);
        }
示例#40
0
        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);
        }