private void UpdateAmounts(InvType type, InvAction action, MyPhysicalInventoryItem item)
        {
            InventoryItem storage = ItemDeltas.Find(x => x.Index == item.ItemId && x.TypeId == item.Content.TypeId && x.SubtypeId == item.Content.SubtypeId);

            if (storage == null)
            {
                ItemDeltas.Add(new InventoryItem()
                {
                    TypeId        = item.Content.TypeId,
                    SubtypeId     = item.Content.SubtypeId,
                    Index         = item.ItemId,
                    InventoryType = type,
                    Removed       = (action == InvAction.Remove) ? item.Amount : 0,
                    Added         = (action == InvAction.Add) ? item.Amount : 0
                });
            }
            else if (action == InvAction.Add)
            {
                storage.Added += item.Amount;
            }
            else if (action == InvAction.Remove)
            {
                storage.Removed += item.Amount;
            }
        }
Ejemplo n.º 2
0
        override public void ShowGUI(List <ActionParameter> parameters)
        {
            invAction = (InvAction)EditorGUILayout.EnumPopup("Method:", invAction);

            string _label = "Object to instantiate:";

            if (invAction == InvAction.Remove)
            {
                _label = "Object to delete:";
            }

            parameterID = Action.ChooseParameterGUI(_label, parameters, parameterID, ParameterType.GameObject);
            if (parameterID >= 0)
            {
                constantID = 0;
                gameObject = null;
            }
            else
            {
                gameObject = (GameObject)EditorGUILayout.ObjectField(_label, gameObject, typeof(GameObject), true);

                constantID = FieldToID(gameObject, constantID);
                gameObject = IDToField(gameObject, constantID, false);
            }

            if (invAction == InvAction.Add)
            {
                positionRelativeTo = (PositionRelativeTo)EditorGUILayout.EnumPopup("Position relative to:", positionRelativeTo);
            }

            AfterRunningOption();
        }
        override public void ShowGUI(List <ActionParameter> parameters)
        {
            invAction = (InvAction)EditorGUILayout.EnumPopup("Method:", invAction);

            string _label = "Object to instantiate:";

            if (invAction == InvAction.Remove)
            {
                _label = "Object to delete:";
            }

            parameterID = Action.ChooseParameterGUI(_label, parameters, parameterID, ParameterType.GameObject);
            if (parameterID >= 0)
            {
                constantID = 0;
                gameObject = null;
            }
            else
            {
                gameObject = (GameObject)EditorGUILayout.ObjectField(_label, gameObject, typeof(GameObject), true);

                constantID = FieldToID(gameObject, constantID);
                gameObject = IDToField(gameObject, constantID, false);
            }

            if (invAction == InvAction.Add)
            {
                positionRelativeTo = (PositionRelativeTo)EditorGUILayout.EnumPopup("Position relative to:", positionRelativeTo);

                if (positionRelativeTo == PositionRelativeTo.RelativeToGameObject)
                {
                    relativeGameObjectParameterID = Action.ChooseParameterGUI("Relative GameObject:", parameters, relativeGameObjectParameterID, ParameterType.GameObject);
                    if (relativeGameObjectParameterID >= 0)
                    {
                        relativeGameObjectID = 0;
                        relativeGameObject   = null;
                    }
                    else
                    {
                        relativeGameObject = (GameObject)EditorGUILayout.ObjectField("Relative GameObject:", relativeGameObject, typeof(GameObject), true);

                        relativeGameObjectID = FieldToID(relativeGameObject, relativeGameObjectID);
                        relativeGameObject   = IDToField(relativeGameObject, relativeGameObjectID, false);
                    }
                }
                else if (positionRelativeTo == PositionRelativeTo.EnteredValue)
                {
                    relativeVectorParameterID = Action.ChooseParameterGUI("Value:", parameters, relativeVectorParameterID, ParameterType.Vector3);
                    if (relativeVectorParameterID < 0)
                    {
                        relativeVector = EditorGUILayout.Vector3Field("Value:", relativeVector);
                    }
                }
                else if (positionRelativeTo == PositionRelativeTo.VectorVariable)
                {
                    if (isAssetFile)
                    {
                        variableLocation = VariableLocation.Global;
                    }
                    else
                    {
                        variableLocation = (VariableLocation)EditorGUILayout.EnumPopup("Source:", variableLocation);
                    }

                    if (variableLocation == VariableLocation.Global)
                    {
                        vectorVarParameterID = Action.ChooseParameterGUI("Vector3 variable:", parameters, vectorVarParameterID, ParameterType.GlobalVariable);
                        if (vectorVarParameterID < 0)
                        {
                            vectorVarID = AdvGame.GlobalVariableGUI("Vector3 variable:", vectorVarID, VariableType.Vector3);
                        }
                    }
                    else if (variableLocation == VariableLocation.Local)
                    {
                        vectorVarParameterID = Action.ChooseParameterGUI("Vector3 variable:", parameters, vectorVarParameterID, ParameterType.LocalVariable);
                        if (vectorVarParameterID < 0)
                        {
                            vectorVarID = AdvGame.LocalVariableGUI("Vector3 variable:", vectorVarID, VariableType.Vector3);
                        }
                    }
                }
            }
            else if (invAction == InvAction.Replace)
            {
                EditorGUILayout.Space();
                replaceParameterID = Action.ChooseParameterGUI("Object to delete:", parameters, replaceParameterID, ParameterType.GameObject);
                if (replaceParameterID >= 0)
                {
                    replaceConstantID = 0;
                    replaceGameObject = null;
                }
                else
                {
                    replaceGameObject = (GameObject)EditorGUILayout.ObjectField("Object to delete:", replaceGameObject, typeof(GameObject), true);

                    replaceConstantID = FieldToID(replaceGameObject, replaceConstantID);
                    replaceGameObject = IDToField(replaceGameObject, replaceConstantID, false);
                }
            }

            AfterRunningOption();
        }
Ejemplo n.º 4
0
        public override void ShowGUI(List<ActionParameter> parameters)
        {
            invAction = (InvAction) EditorGUILayout.EnumPopup ("Method:", invAction);

            string _label = "Object to instantiate:";
            if (invAction == InvAction.Remove)
            {
                _label = "Object to delete:";
            }

            parameterID = Action.ChooseParameterGUI (_label, parameters, parameterID, ParameterType.GameObject);
            if (parameterID >= 0)
            {
                constantID = 0;
                gameObject = null;
            }
            else
            {
                gameObject = (GameObject) EditorGUILayout.ObjectField (_label, gameObject, typeof (GameObject), true);

                constantID = FieldToID (gameObject, constantID);
                gameObject = IDToField (gameObject, constantID, false);
            }

            if (invAction == InvAction.Add)
            {
                positionRelativeTo = (PositionRelativeTo) EditorGUILayout.EnumPopup ("Position relative to:", positionRelativeTo);
            }
            else if (invAction == InvAction.Replace)
            {
                EditorGUILayout.Space ();
                replaceParameterID = Action.ChooseParameterGUI ("Object to delete:", parameters, replaceParameterID, ParameterType.GameObject);
                if (replaceParameterID >= 0)
                {
                    replaceConstantID = 0;
                    replaceGameObject = null;
                }
                else
                {
                    replaceGameObject = (GameObject) EditorGUILayout.ObjectField ("Object to delete:", replaceGameObject, typeof (GameObject), true);

                    replaceConstantID = FieldToID (replaceGameObject, replaceConstantID);
                    replaceGameObject = IDToField (replaceGameObject, replaceConstantID, false);
                }
            }

            AfterRunningOption ();
        }
Ejemplo n.º 5
0
        override public void ShowGUI(List <ActionParameter> parameters)
        {
            if (KickStarter.sceneSettings == null)
            {
                return;
            }

            sceneSetting = (SceneSetting)EditorGUILayout.EnumPopup("Scene setting to change:", sceneSetting);

            if (sceneSetting == SceneSetting.DefaultNavMesh)
            {
                if (KickStarter.sceneSettings.navigationMethod == AC_NavigationMethod.meshCollider || KickStarter.sceneSettings.navigationMethod == AC_NavigationMethod.PolygonCollider)
                {
                    if (KickStarter.sceneSettings.navigationMethod == AC_NavigationMethod.PolygonCollider)
                    {
                        changeNavMeshMethod = (ChangeNavMeshMethod)EditorGUILayout.EnumPopup("Change NavMesh method:", changeNavMeshMethod);
                    }

                    if (KickStarter.sceneSettings.navigationMethod == AC_NavigationMethod.meshCollider || changeNavMeshMethod == ChangeNavMeshMethod.ChangeNavMesh)
                    {
                        parameterID = Action.ChooseParameterGUI("New NavMesh:", parameters, parameterID, ParameterType.GameObject);
                        if (parameterID >= 0)
                        {
                            constantID = 0;
                            newNavMesh = null;
                        }
                        else
                        {
                            newNavMesh = (NavigationMesh)EditorGUILayout.ObjectField("New NavMesh:", newNavMesh, typeof(NavigationMesh), true);

                            constantID = FieldToID <NavigationMesh> (newNavMesh, constantID);
                            newNavMesh = IDToField <NavigationMesh> (newNavMesh, constantID, false);
                        }
                    }
                    else if (changeNavMeshMethod == ChangeNavMeshMethod.ChangeNumberOfHoles)
                    {
                        holeAction = (InvAction)EditorGUILayout.EnumPopup("Add or remove hole:", holeAction);
                        string _label = "Hole to add:";
                        if (holeAction == InvAction.Remove)
                        {
                            _label = "Hole to remove:";
                        }

                        parameterID = Action.ChooseParameterGUI(_label, parameters, parameterID, ParameterType.GameObject);
                        if (parameterID >= 0)
                        {
                            constantID = 0;
                            hole       = null;
                        }
                        else
                        {
                            hole = (PolygonCollider2D)EditorGUILayout.ObjectField(_label, hole, typeof(PolygonCollider2D), true);

                            constantID = FieldToID <PolygonCollider2D> (hole, constantID);
                            hole       = IDToField <PolygonCollider2D> (hole, constantID, false);
                        }

                        if (holeAction == InvAction.Replace)
                        {
                            replaceParameterID = Action.ChooseParameterGUI("Hole to remove:", parameters, replaceParameterID, ParameterType.GameObject);
                            if (replaceParameterID >= 0)
                            {
                                replaceConstantID = 0;
                                replaceHole       = null;
                            }
                            else
                            {
                                replaceHole = (PolygonCollider2D)EditorGUILayout.ObjectField("Hole to remove:", replaceHole, typeof(PolygonCollider2D), true);

                                replaceConstantID = FieldToID <PolygonCollider2D> (replaceHole, replaceConstantID);
                                replaceHole       = IDToField <PolygonCollider2D> (replaceHole, replaceConstantID, false);
                            }
                        }
                    }
                }
                else
                {
                    EditorGUILayout.HelpBox("This action is not compatible with the Unity Navigation pathfinding method, as set in the Scene Manager.", MessageType.Warning);
                }
            }
            else if (sceneSetting == SceneSetting.DefaultPlayerStart)
            {
                parameterID = Action.ChooseParameterGUI("New default PlayerStart:", parameters, parameterID, ParameterType.GameObject);
                if (parameterID >= 0)
                {
                    constantID  = 0;
                    playerStart = null;
                }
                else
                {
                    playerStart = (PlayerStart)EditorGUILayout.ObjectField("New default PlayerStart:", playerStart, typeof(PlayerStart), true);

                    constantID  = FieldToID <PlayerStart> (playerStart, constantID);
                    playerStart = IDToField <PlayerStart> (playerStart, constantID, false);
                }
            }
            else if (sceneSetting == SceneSetting.SortingMap)
            {
                parameterID = Action.ChooseParameterGUI("New SortingMap:", parameters, parameterID, ParameterType.GameObject);
                if (parameterID >= 0)
                {
                    constantID = 0;
                    sortingMap = null;
                }
                else
                {
                    sortingMap = (SortingMap)EditorGUILayout.ObjectField("New SortingMap:", sortingMap, typeof(SortingMap), true);

                    constantID = FieldToID <SortingMap> (sortingMap, constantID);
                    sortingMap = IDToField <SortingMap> (sortingMap, constantID, false);
                }
            }
            else if (sceneSetting == SceneSetting.TintMap)
            {
                parameterID = Action.ChooseParameterGUI("New TintMap:", parameters, parameterID, ParameterType.GameObject);
                if (parameterID >= 0)
                {
                    constantID = 0;
                    tintMap    = null;
                }
                else
                {
                    tintMap = (TintMap)EditorGUILayout.ObjectField("New TintMap:", tintMap, typeof(TintMap), true);

                    constantID = FieldToID <TintMap> (tintMap, constantID);
                    tintMap    = IDToField <TintMap> (tintMap, constantID, false);
                }
            }
            else if (sceneSetting == SceneSetting.OnLoadCutscene)
            {
                parameterID = Action.ChooseParameterGUI("New OnLoad cutscene:", parameters, parameterID, ParameterType.GameObject);
                if (parameterID >= 0)
                {
                    constantID = 0;
                    cutscene   = null;
                }
                else
                {
                    cutscene = (Cutscene)EditorGUILayout.ObjectField("New OnLoad custscne:", cutscene, typeof(Cutscene), true);

                    constantID = FieldToID <Cutscene> (cutscene, constantID);
                    cutscene   = IDToField <Cutscene> (cutscene, constantID, false);
                }
            }
            else if (sceneSetting == SceneSetting.OnStartCutscene)
            {
                parameterID = Action.ChooseParameterGUI("New OnStart cutscene:", parameters, parameterID, ParameterType.GameObject);
                if (parameterID >= 0)
                {
                    constantID = 0;
                    cutscene   = null;
                }
                else
                {
                    cutscene = (Cutscene)EditorGUILayout.ObjectField("New OnStart cutscene:", cutscene, typeof(Cutscene), true);

                    constantID = FieldToID <Cutscene> (cutscene, constantID);
                    cutscene   = IDToField <Cutscene> (cutscene, constantID, false);
                }
            }

            AfterRunningOption();
        }
Ejemplo n.º 6
0
        public override void ShowGUI(List <ActionParameter> parameters)
        {
            invAction = (InvAction)EditorGUILayout.EnumPopup("Method:", invAction);

            string _label = "Object to instantiate:";

            if (invAction == InvAction.Remove)
            {
                _label = "Object to delete:";
            }

            ParameterType[] parameterTypes = new ParameterType[2] {
                ParameterType.GameObject, ParameterType.InventoryItem
            };
            parameterID = Action.ChooseParameterGUI(_label, parameters, parameterID, parameterTypes);
            if (parameterID >= 0)
            {
                constantID = 0;
                gameObject = null;
            }
            else
            {
                gameObject = (GameObject)EditorGUILayout.ObjectField(_label, gameObject, typeof(GameObject), true);

                constantID = FieldToID(gameObject, constantID);
                gameObject = IDToField(gameObject, constantID, false);
            }

            if (invAction == InvAction.Add)
            {
                positionRelativeTo = (PositionRelativeTo)EditorGUILayout.EnumPopup("Position relative to:", positionRelativeTo);

                if (positionRelativeTo == PositionRelativeTo.RelativeToGameObject)
                {
                    relativeGameObjectParameterID = Action.ChooseParameterGUI("Relative GameObject:", parameters, relativeGameObjectParameterID, ParameterType.GameObject);
                    if (relativeGameObjectParameterID >= 0)
                    {
                        relativeGameObjectID = 0;
                        relativeGameObject   = null;
                    }
                    else
                    {
                        relativeGameObject = (GameObject)EditorGUILayout.ObjectField("Relative GameObject:", relativeGameObject, typeof(GameObject), true);

                        relativeGameObjectID = FieldToID(relativeGameObject, relativeGameObjectID);
                        relativeGameObject   = IDToField(relativeGameObject, relativeGameObjectID, false);
                    }
                }
                else if (positionRelativeTo == PositionRelativeTo.EnteredValue)
                {
                    relativeVectorParameterID = Action.ChooseParameterGUI("Value:", parameters, relativeVectorParameterID, ParameterType.Vector3);
                    if (relativeVectorParameterID < 0)
                    {
                        relativeVector = EditorGUILayout.Vector3Field("Value:", relativeVector);
                    }
                }
                else if (positionRelativeTo == PositionRelativeTo.VectorVariable)
                {
                    variableLocation = (VariableLocation)EditorGUILayout.EnumPopup("Source:", variableLocation);

                    switch (variableLocation)
                    {
                    case VariableLocation.Global:
                        vectorVarParameterID = Action.ChooseParameterGUI("Vector3 variable:", parameters, vectorVarParameterID, ParameterType.GlobalVariable);
                        if (vectorVarParameterID < 0)
                        {
                            vectorVarID = AdvGame.GlobalVariableGUI("Vector3 variable:", vectorVarID, VariableType.Vector3);
                        }
                        break;

                    case VariableLocation.Local:
                        if (!isAssetFile)
                        {
                            vectorVarParameterID = Action.ChooseParameterGUI("Vector3 variable:", parameters, vectorVarParameterID, ParameterType.LocalVariable);
                            if (vectorVarParameterID < 0)
                            {
                                vectorVarID = AdvGame.LocalVariableGUI("Vector3 variable:", vectorVarID, VariableType.Vector3);
                            }
                        }
                        else
                        {
                            EditorGUILayout.HelpBox("Local variables cannot be accessed in ActionList assets.", MessageType.Info);
                        }
                        break;

                    case VariableLocation.Component:
                        vectorVarParameterID = Action.ChooseParameterGUI("Vector3 variable:", parameters, vectorVarParameterID, ParameterType.ComponentVariable);
                        if (vectorVarParameterID >= 0)
                        {
                            variables           = null;
                            variablesConstantID = 0;
                        }
                        else
                        {
                            variables           = (Variables)EditorGUILayout.ObjectField("Component:", variables, typeof(Variables), true);
                            variablesConstantID = FieldToID <Variables> (variables, variablesConstantID);
                            variables           = IDToField <Variables> (variables, variablesConstantID, false);

                            if (variables != null)
                            {
                                vectorVarID = AdvGame.ComponentVariableGUI("Vector3 variable:", vectorVarID, VariableType.Vector3, variables);
                            }
                        }
                        break;
                    }
                }

                spawnedObjectParameterID = ChooseParameterGUI("Send to parameter:", parameters, spawnedObjectParameterID, ParameterType.GameObject);
            }
            else if (invAction == InvAction.Replace)
            {
                EditorGUILayout.Space();
                replaceParameterID = Action.ChooseParameterGUI("Object to delete:", parameters, replaceParameterID, ParameterType.GameObject);
                if (replaceParameterID >= 0)
                {
                    replaceConstantID = 0;
                    replaceGameObject = null;
                }
                else
                {
                    replaceGameObject = (GameObject)EditorGUILayout.ObjectField("Object to delete:", replaceGameObject, typeof(GameObject), true);

                    replaceConstantID = FieldToID(replaceGameObject, replaceConstantID);
                    replaceGameObject = IDToField(replaceGameObject, replaceConstantID, false);
                }
            }

            AfterRunningOption();
        }
Ejemplo n.º 7
0
        public override void ShowGUI(List<ActionParameter> parameters)
        {
            if (KickStarter.sceneSettings == null)
            {
                return;
            }

            sceneSetting = (SceneSetting) EditorGUILayout.EnumPopup ("Scene setting to change:", sceneSetting);

            if (sceneSetting == SceneSetting.DefaultNavMesh)
            {
                if (KickStarter.sceneSettings.navigationMethod == AC_NavigationMethod.meshCollider || KickStarter.sceneSettings.navigationMethod == AC_NavigationMethod.PolygonCollider)
                {
                    if (KickStarter.sceneSettings.navigationMethod == AC_NavigationMethod.PolygonCollider)
                    {
                        changeNavMeshMethod = (ChangeNavMeshMethod) EditorGUILayout.EnumPopup ("Change NavMesh method:", changeNavMeshMethod);
                    }

                    if (KickStarter.sceneSettings.navigationMethod == AC_NavigationMethod.meshCollider || changeNavMeshMethod == ChangeNavMeshMethod.ChangeNavMesh)
                    {
                        parameterID = Action.ChooseParameterGUI ("New NavMesh:", parameters, parameterID, ParameterType.GameObject);
                        if (parameterID >= 0)
                        {
                            constantID = 0;
                            newNavMesh = null;
                        }
                        else
                        {
                            newNavMesh = (NavigationMesh) EditorGUILayout.ObjectField ("New NavMesh:", newNavMesh, typeof (NavigationMesh), true);

                            constantID = FieldToID <NavigationMesh> (newNavMesh, constantID);
                            newNavMesh = IDToField <NavigationMesh> (newNavMesh, constantID, false);
                        }
                    }
                    else if (changeNavMeshMethod == ChangeNavMeshMethod.ChangeNumberOfHoles)
                    {
                        holeAction = (InvAction) EditorGUILayout.EnumPopup ("Add or remove hole:", holeAction);
                        string _label = "Hole to add:";
                        if (holeAction == InvAction.Remove)
                        {
                            _label = "Hole to remove:";
                        }

                        parameterID = Action.ChooseParameterGUI (_label, parameters, parameterID, ParameterType.GameObject);
                        if (parameterID >= 0)
                        {
                            constantID = 0;
                            hole = null;
                        }
                        else
                        {
                            hole = (PolygonCollider2D) EditorGUILayout.ObjectField (_label, hole, typeof (PolygonCollider2D), true);

                            constantID = FieldToID <PolygonCollider2D> (hole, constantID);
                            hole = IDToField <PolygonCollider2D> (hole, constantID, false);
                        }

                        if (holeAction == InvAction.Replace)
                        {
                            replaceParameterID = Action.ChooseParameterGUI ("Hole to remove:", parameters, replaceParameterID, ParameterType.GameObject);
                            if (replaceParameterID >= 0)
                            {
                                replaceConstantID = 0;
                                replaceHole = null;
                            }
                            else
                            {
                                replaceHole = (PolygonCollider2D) EditorGUILayout.ObjectField ("Hole to remove:", replaceHole, typeof (PolygonCollider2D), true);

                                replaceConstantID = FieldToID <PolygonCollider2D> (replaceHole, replaceConstantID);
                                replaceHole = IDToField <PolygonCollider2D> (replaceHole, replaceConstantID, false);
                            }
                        }
                    }
                }
                else
                {
                    EditorGUILayout.HelpBox ("This action is not compatible with the Unity Navigation pathfinding method, as set in the Scene Manager.", MessageType.Warning);
                }
            }
            else if (sceneSetting == SceneSetting.DefaultPlayerStart)
            {
                parameterID = Action.ChooseParameterGUI ("New default PlayerStart:", parameters, parameterID, ParameterType.GameObject);
                if (parameterID >= 0)
                {
                    constantID = 0;
                    playerStart = null;
                }
                else
                {
                    playerStart = (PlayerStart) EditorGUILayout.ObjectField ("New default PlayerStart:", playerStart, typeof (PlayerStart), true);

                    constantID = FieldToID <PlayerStart> (playerStart, constantID);
                    playerStart = IDToField <PlayerStart> (playerStart, constantID, false);
                }
            }
            else if (sceneSetting == SceneSetting.SortingMap)
            {
                parameterID = Action.ChooseParameterGUI ("New SortingMap:", parameters, parameterID, ParameterType.GameObject);
                if (parameterID >= 0)
                {
                    constantID = 0;
                    sortingMap = null;
                }
                else
                {
                    sortingMap = (SortingMap) EditorGUILayout.ObjectField ("New SortingMap:", sortingMap, typeof (SortingMap), true);

                    constantID = FieldToID <SortingMap> (sortingMap, constantID);
                    sortingMap = IDToField <SortingMap> (sortingMap, constantID, false);
                }
            }
            else if (sceneSetting == SceneSetting.TintMap)
            {
                parameterID = Action.ChooseParameterGUI ("New TintMap:", parameters, parameterID, ParameterType.GameObject);
                if (parameterID >= 0)
                {
                    constantID = 0;
                    tintMap = null;
                }
                else
                {
                    tintMap = (TintMap) EditorGUILayout.ObjectField ("New TintMap:", tintMap, typeof (TintMap), true);

                    constantID = FieldToID <TintMap> (tintMap, constantID);
                    tintMap = IDToField <TintMap> (tintMap, constantID, false);
                }
            }
            else if (sceneSetting == SceneSetting.OnLoadCutscene)
            {
                parameterID = Action.ChooseParameterGUI ("New OnLoad cutscene:", parameters, parameterID, ParameterType.GameObject);
                if (parameterID >= 0)
                {
                    constantID = 0;
                    cutscene = null;
                }
                else
                {
                    cutscene = (Cutscene) EditorGUILayout.ObjectField ("New OnLoad custscne:", cutscene, typeof (Cutscene), true);

                    constantID = FieldToID <Cutscene> (cutscene, constantID);
                    cutscene = IDToField <Cutscene> (cutscene, constantID, false);
                }
            }
            else if (sceneSetting == SceneSetting.OnStartCutscene)
            {
                parameterID = Action.ChooseParameterGUI ("New OnStart cutscene:", parameters, parameterID, ParameterType.GameObject);
                if (parameterID >= 0)
                {
                    constantID = 0;
                    cutscene = null;
                }
                else
                {
                    cutscene = (Cutscene) EditorGUILayout.ObjectField ("New OnStart cutscene:", cutscene, typeof (Cutscene), true);

                    constantID = FieldToID <Cutscene> (cutscene, constantID);
                    cutscene = IDToField <Cutscene> (cutscene, constantID, false);
                }
            }

            AfterRunningOption ();
        }
		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;
			}
			
			if (inventoryManager != null)
			{
				// 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 a item has been removed, make sure selected variable is still valid
						if (_item.id == invID)
						{
							invNumber = i;
						}
						
						i++;
					}
					
					if (invNumber == -1)
					{
						Debug.Log ("Previously chosen item no longer exists!");
						invNumber = 0;
						invID = 0;
					}
					
					invAction = (InvAction) EditorGUILayout.EnumPopup ("Add or remove:", invAction);

					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)
					{
						setAmount = EditorGUILayout.Toggle ("Set amount?", setAmount);
					
						if (setAmount)
						{
							if (invAction == InvAction.Add)
							{
								amount = EditorGUILayout.IntField ("Increase count by:", amount);
							}
							else
							{
								amount = EditorGUILayout.IntField ("Reduce count by:", amount);
							}
						}
					}
				}
				else
				{
					EditorGUILayout.HelpBox ("No inventory items exist!", MessageType.Info);
					invID = -1;
					invNumber = -1;
				}

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

					setPlayer = EditorGUILayout.Toggle ("Affect specific player?", setPlayer);
					if (setPlayer)
					{
						ChoosePlayerGUI ();
					}
				}
				else
				{
					setPlayer = false;
				}
			}
			else
			{
				EditorGUILayout.HelpBox ("An Inventory Manager must be assigned for this Action to work", MessageType.Warning);
			}

			AfterRunningOption ();
		}
Ejemplo n.º 9
0
        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;
            }

            if (inventoryManager != null)
            {
                // 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 a item has been removed, make sure selected variable is still valid
                        if (_item.id == invID)
                        {
                            invNumber = i;
                        }
                        if (_item.id == invIDReplace)
                        {
                            replaceInvNumber = i;
                        }

                        i++;
                    }

                    if (invNumber == -1)
                    {
                        if (invID != 0)
                        {
                            ACDebug.Log("Previously chosen item no longer exists!");
                        }
                        invNumber = 0;
                        invID     = 0;
                    }

                    if (invAction == InvAction.Replace && replaceInvNumber == -1)
                    {
                        if (invIDReplace != 0)
                        {
                            ACDebug.Log("Previously chosen item no longer exists!");
                        }
                        replaceInvNumber = 0;
                        invIDReplace     = 0;
                    }

                    invAction = (InvAction)EditorGUILayout.EnumPopup("Method:", invAction);

                    string label = "Item to add:";
                    if (invAction == InvAction.Remove)
                    {
                        label = "Item to remove:";
                    }

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

                    if (inventoryManager.items[invNumber].canCarryMultiple)
                    {
                        setAmount = EditorGUILayout.Toggle("Set amount?", setAmount);

                        if (setAmount)
                        {
                            string _label = (invAction == InvAction.Remove) ? "Reduce count by:" : "Increase count by:";

                            amountParameterID = Action.ChooseParameterGUI(_label, parameters, amountParameterID, ParameterType.Integer);
                            if (amountParameterID < 0)
                            {
                                amount = EditorGUILayout.IntField(_label, amount);
                            }
                        }
                    }

                    if (invAction == InvAction.Replace)
                    {
                        replaceParameterID = Action.ChooseParameterGUI("Item to remove:", parameters, replaceParameterID, ParameterType.InventoryItem);
                        if (replaceParameterID >= 0)
                        {
                            replaceInvNumber = Mathf.Min(replaceInvNumber, inventoryManager.items.Count - 1);
                            invIDReplace     = -1;
                        }
                        else
                        {
                            replaceInvNumber = EditorGUILayout.Popup("Item to remove:", replaceInvNumber, labelList.ToArray());
                            invIDReplace     = inventoryManager.items[replaceInvNumber].id;
                        }
                    }
                    else if (invAction == InvAction.Add)
                    {
                        addToFront = EditorGUILayout.Toggle("Add to front?", addToFront);
                    }
                }
                else
                {
                    EditorGUILayout.HelpBox("No inventory items exist!", MessageType.Info);
                    invID            = -1;
                    invNumber        = -1;
                    invIDReplace     = -1;
                    replaceInvNumber = -1;
                }

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

                    setPlayer = EditorGUILayout.Toggle("Affect specific player?", setPlayer);
                    if (setPlayer)
                    {
                        ChoosePlayerGUI();
                    }
                }
                else
                {
                    setPlayer = false;
                }
            }
            else
            {
                EditorGUILayout.HelpBox("An Inventory Manager must be assigned for this Action to work", MessageType.Warning);
            }

            AfterRunningOption();
        }
 public void Add(long EntityId, long?BlockId, uint ItemId, InvType type, InvAction action, MyFixedPoint Amount, string TypeId, string SubtypeId)
 {
     hasData = true;
     query.Append($@"('{EntityId}', '{((BlockId.HasValue) ? BlockId.Value.ToString() : "NULL")}', {ItemId}, '{type.ToString()}', '{action.ToString()}', {Amount}, '{TypeId}', '{SubtypeId}', '{Tools.DateTimeFormated}'),");
 }
Ejemplo n.º 11
0
    override public void ShowGUI()
    {
        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 a item has been removed, make sure selected variable is still valid
                    if (_item.id == invID)
                    {
                        invNumber = i;
                    }

                    i++;
                }

                if (invNumber == -1)
                {
                    Debug.Log("Previously chosen item no longer exists!");
                    invNumber = 0;
                    invID     = 0;
                }

                EditorGUILayout.BeginHorizontal();
                invAction = (InvAction)EditorGUILayout.EnumPopup("Inventory item:", invAction);

                invNumber = EditorGUILayout.Popup(invNumber, labelList.ToArray());
                invID     = inventoryManager.items[invNumber].id;
                EditorGUILayout.EndHorizontal();

                if (inventoryManager.items[invNumber].canCarryMultiple)
                {
                    setAmount = EditorGUILayout.Toggle("Set amount?", setAmount);

                    if (setAmount)
                    {
                        if (invAction == InvAction.Add)
                        {
                            amount = EditorGUILayout.IntField("Increase count by:", amount);
                        }
                        else
                        {
                            amount = EditorGUILayout.IntField("Reduce count by:", amount);
                        }
                    }
                    else
                    {
                        amount = 1;
                    }
                }
                else
                {
                    amount = 1;
                }

                AfterRunningOption();
            }

            else
            {
                EditorGUILayout.LabelField("No inventory items exist!");
                invID     = -1;
                invNumber = -1;
            }
        }
    }