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; } }
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(); }
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 (); }
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(); }
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(); }
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 (); }
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}'),"); }
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; } } }