Exemple #1
0
        private void ArrowGUI(Arrow arrow, ActionListSource source, string label)
        {
            if (arrow != null)
            {
                ArrowPrompt _target = (ArrowPrompt)target;

                arrow.isPresent = CustomGUILayout.Toggle("Provide?", arrow.isPresent, "", "If True, the Arrow is defined and used in the ArrowPrompt");

                if (arrow.isPresent)
                {
                    arrow.texture = (Texture2D)CustomGUILayout.ObjectField <Texture2D> ("Icon texture:", arrow.texture, true, "", "The texture to draw on-screen");

                    EditorGUILayout.BeginHorizontal();
                    if (source == ActionListSource.InScene)
                    {
                        arrow.linkedCutscene = ActionListAssetMenu.CutsceneGUI("Linked Cutscene", arrow.linkedCutscene, _target.gameObject.name + ": " + label, "The Cutscene to run when the Arrow is triggered");
                    }
                    else if (source == ActionListSource.AssetFile)
                    {
                        arrow.linkedActionList = ActionListAssetMenu.AssetGUI("Linked ActionList:", arrow.linkedActionList, _target.gameObject.name + "_" + label, "", "The ActionList asset to run when the Arrow is triggered");
                    }
                    EditorGUILayout.EndHorizontal();
                }
            }
        }
Exemple #2
0
        public void ShowGUI()
        {
            runOnStart = EditorGUILayout.Toggle("Run on scene start?", runOnStart);
            runOnLoad  = EditorGUILayout.Toggle("Run on scene load?", runOnLoad);
            EditorGUILayout.HelpBox("The linked ActionList can also be run by invoking this script's RunActionList() method.", MessageType.Info);

            EditorGUILayout.Space();

            actionListSource = (ActionListSource)EditorGUILayout.EnumPopup("ActionList source:", actionListSource);
            switch (actionListSource)
            {
            case ActionListSource.InScene:
                actionList = (ActionList)EditorGUILayout.ObjectField("ActionList to run:", actionList, typeof(ActionList), true);

                if (actionList != null && actionList.IsSkippable())
                {
                    runInstantly = EditorGUILayout.Toggle("Run instantly?", runInstantly);
                }
                EditorGUILayout.Space();
                ShowParametersGUI(actionList);
                break;

            case ActionListSource.AssetFile:
                actionListAsset = (ActionListAsset)EditorGUILayout.ObjectField("Asset to run:", actionListAsset, typeof(ActionListAsset), false);

                if (actionListAsset != null && actionListAsset.IsSkippable())
                {
                    runInstantly = EditorGUILayout.Toggle("Run instantly?", runInstantly);
                }
                EditorGUILayout.Space();
                ShowParametersGUI(actionListAsset);
                break;
            }
        }
Exemple #3
0
        private void AddTextInputToActionList()
        {
            if (AppManager.Instance.AutomationIsRunning)
            {
                return;
            }

            if (ActionListSource == null)
            {
                ActionListSource = new ObservableCollection <OActionData>();
            }

            _counter++;
            ActionListSource.Add(new OActionData
            {
                Id              = _counter,
                ActionDelay     = AppManager.Instance.Settings.CurrentActionDelay,
                MousePosition   = AppManager.Instance.Settings.CurrentMousePosition,
                MouseAction     = MouseActionType.Undefined,
                IsTaskPerformed = false,
                TextInput       = AppManager.Instance.Settings.CurrentTextInput
            });

            if (OnActionListUpdated != null)
            {
                OnActionListUpdated(this, EventArgs.Empty);
            }

            BottomStatusText = "New text input added.";
        }
Exemple #4
0
 /**
  * <summary>Runs the Arrow's linkedCutscene.</summary>
  * <param name = "actionListSource">Where the Actions are stored when not being run</param>
  */
 public void Run(ActionListSource actionListSource)
 {
     if (actionListSource == ActionListSource.AssetFile)
     {
         if (linkedActionList != null)
         {
             linkedActionList.Interact();
         }
     }
     else if (actionListSource == ActionListSource.InScene)
     {
         if (linkedCutscene != null)
         {
             linkedCutscene.Interact();
         }
     }
 }
        public void ShowGUI()
        {
            runOnStart = EditorGUILayout.Toggle("Run on scene start?", runOnStart);
            runOnLoad  = EditorGUILayout.Toggle("Run on scene load?", runOnLoad);

            if (runOnLoad && KickStarter.settingsManager && KickStarter.settingsManager.playerSwitching == PlayerSwitching.Allow)
            {
                sceneLoadCondition = (SceneLoadCondition)EditorGUILayout.EnumPopup("Scene load condition:", sceneLoadCondition);
            }

            EditorGUILayout.Space();

            actionListSource = (ActionListSource)EditorGUILayout.EnumPopup("ActionList source:", actionListSource);
            switch (actionListSource)
            {
            case ActionListSource.InScene:
                actionList = (ActionList)EditorGUILayout.ObjectField("ActionList to run:", actionList, typeof(ActionList), true);

                if (actionList == null && GetComponent <ActionList>())
                {
                    actionList = GetComponent <ActionList>();
                }

                if (actionList && actionList.IsSkippable())
                {
                    runInstantly = EditorGUILayout.Toggle("Run instantly?", runInstantly);
                }
                EditorGUILayout.Space();
                ShowParametersGUI(actionList);
                break;

            case ActionListSource.AssetFile:
                actionListAsset = (ActionListAsset)EditorGUILayout.ObjectField("Asset to run:", actionListAsset, typeof(ActionListAsset), false);

                if (actionListAsset && actionListAsset.IsSkippable())
                {
                    runInstantly = EditorGUILayout.Toggle("Run instantly?", runInstantly);
                }
                EditorGUILayout.Space();
                ShowParametersGUI(actionListAsset);
                break;
            }

            EditorGUILayout.Space();
            EditorGUILayout.HelpBox("The linked ActionList can also be run by invoking this script's RunActionList() method.", MessageType.Info);
        }
Exemple #6
0
        public void SetParameter(ActionListSource source, GameObject gameObject)
        {
            if (source == ActionListSource.InScene && cutscene != null)
            {
                if (cutscene.useParameters && parameterID >= 0 && cutscene.parameters.Count > parameterID)
                {
                    ActionParameter parameter = cutscene.GetParameter(parameterID);
                    if (parameter != null)
                    {
                        parameter.SetValue(gameObject);
                    }
                }

                if (!pausesCharacter)
                {
                    cutscene.Interact();
                }
            }
            else if (source == ActionListSource.AssetFile && actionListAsset != null)
            {
                if (actionListAsset.useParameters && parameterID >= 0 && actionListAsset.parameters.Count > parameterID)
                {
                    int idToSend = 0;
                    if (gameObject.GetComponent <ConstantID>())
                    {
                        idToSend = gameObject.GetComponent <ConstantID>().constantID;
                    }
                    else
                    {
                        ACDebug.LogWarning(gameObject.name + " requires a ConstantID script component!", gameObject);
                    }

                    ActionParameter parameter = actionListAsset.GetParameter(parameterID);
                    if (parameter != null)
                    {
                        parameter.SetValue(idToSend);
                    }
                }

                if (!pausesCharacter)
                {
                    actionListAsset.Interact();
                }
            }
        }
        /**
         * <summary>Runs the 'on snap' ActionList associated with the region</summary>
         * <param name = "actionListSource">The source of the ActionList (InScene, AssetFile)</param>
         */
        public void RunSnapCutscene(ActionListSource actionListSource)
        {
            switch (actionListSource)
            {
            case ActionListSource.InScene:
                if (cutsceneOnSnap)
                {
                    cutsceneOnSnap.Interact();
                }
                break;

            case ActionListSource.AssetFile:
                if (actionListAssetOnSnap)
                {
                    actionListAssetOnSnap.Interact();
                }
                break;
            }
        }
Exemple #8
0
        override public void ShowGUI(List <ActionParameter> parameters)
        {
            changeOwn = EditorGUILayout.Toggle("Change own?", changeOwn);
            if (changeOwn)
            {
                if (parameters == null || parameters.Count == 0)
                {
                    EditorGUILayout.HelpBox("This ActionList has no parameters defined!", MessageType.Warning);
                }

                parameterID = Action.ChooseParameterGUI(parameters, parameterID);
                SetParamGUI(parameters);
            }
            else
            {
                actionListSource = (ActionListSource)EditorGUILayout.EnumPopup("Source:", actionListSource);
                if (actionListSource == ActionListSource.InScene)
                {
                    actionList = (ActionList)EditorGUILayout.ObjectField("ActionList:", actionList, typeof(ActionList), true);

                    actionListConstantID = FieldToID <ActionList> (actionList, actionListConstantID);
                    actionList           = IDToField <ActionList> (actionList, actionListConstantID, true);

                    if (actionList != null)
                    {
                        if (actionList.source == ActionListSource.InScene)
                        {
                            if (actionList.useParameters && actionList.parameters.Count > 0)
                            {
                                parameterID = Action.ChooseParameterGUI(actionList.parameters, parameterID);
                                SetParamGUI(actionList.parameters);
                            }
                            else
                            {
                                EditorGUILayout.HelpBox("This ActionList has no parameters defined!", MessageType.Warning);
                            }
                        }
                        else if (actionList.source == ActionListSource.AssetFile && actionList.assetFile != null)
                        {
                            if (actionList.assetFile.useParameters && actionList.assetFile.parameters.Count > 0)
                            {
                                parameterID = Action.ChooseParameterGUI(actionList.assetFile.parameters, parameterID);
                                SetParamGUI(actionList.assetFile.parameters);
                            }
                            else
                            {
                                EditorGUILayout.HelpBox("This ActionList has no parameters defined!", MessageType.Warning);
                            }
                        }
                        else
                        {
                            EditorGUILayout.HelpBox("This ActionList has no parameters defined!", MessageType.Warning);
                        }
                    }
                }
                else if (actionListSource == ActionListSource.AssetFile)
                {
                    actionListAsset = (ActionListAsset)EditorGUILayout.ObjectField("ActionList asset:", actionListAsset, typeof(ActionListAsset), true);

                    if (actionListAsset != null)
                    {
                        if (actionListAsset.useParameters && actionListAsset.parameters.Count > 0)
                        {
                            parameterID = Action.ChooseParameterGUI(actionListAsset.parameters, parameterID);
                            SetParamGUI(actionListAsset.parameters);
                        }
                        else
                        {
                            EditorGUILayout.HelpBox("This ActionList Asset has no parameters defined!", MessageType.Warning);
                        }
                    }
                }
            }

            AfterRunningOption();
        }