//TODO add in filter for things like: // only items on display // only containers // all items public void Init(Action <string> callback = null, DialogCanvasController.InventoryFilters filter = DialogCanvasController.InventoryFilters.AllItems, bool enableTransUi = true, InventoryMode displayMode = InventoryMode.Character) { this.activeFilter = filter; this.activeMode = displayMode; this.toggleGroup.characterButtonTx.text = PF_PlayerData.activeCharacter.characterDetails.CharacterName; if (callback != null) { this.callbackAfterUse = callback; } this.showTransUi = enableTransUi; if (enableTransUi) { ToggleTransUiOn(); } else { ToggleTransUiOff(); } //only displaying the main currencies (Gold & Gems) for now this.currenciesInUse.Clear(); this.currenciesInUse.Add(GlobalStrings.GOLD_CURRENCY); this.currenciesInUse.Add(GlobalStrings.GEM_CURRENCY); if (displayMode == InventoryMode.Player) { if (PF_PlayerData.inventoryByCategory != null && PF_PlayerData.virtualCurrency != null) { this.itemsToDisplay = PF_PlayerData.inventoryByCategory; this.Currencies.Init(PF_PlayerData.virtualCurrency); } else { ResetItemTiles(); return; } } else { if (PF_PlayerData.characterInvByCategory != null && PF_PlayerData.characterVirtualCurrency != null) { this.itemsToDisplay = PF_PlayerData.characterInvByCategory; this.Currencies.Init(PF_PlayerData.characterVirtualCurrency); } else { ResetItemTiles(); return; } } //reset ResetItemTiles(); string filterName; GlobalStrings.INV_FILTER_DISPLAY_NAMES.TryGetValue(filter, out filterName); this.StoreName.text = string.Format(GlobalStrings.INV_WINDOW_TITLE, filterName); nextPage.interactable = (pageCount > 1); prevPage.interactable = false; int count = 0; foreach (var kvp in this.itemsToDisplay) { if (count >= this.itemsPerPage) { break; } bool addItem = false; if (filter == DialogCanvasController.InventoryFilters.Containers) { if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString())) { addItem = true; } else { continue; } } else if (filter == DialogCanvasController.InventoryFilters.Keys) { if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString())) { addItem = true; } else { continue; } } else if (filter == DialogCanvasController.InventoryFilters.UsableInCombat) { if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString())) { addItem = true; } else { continue; } } else if (filter == DialogCanvasController.InventoryFilters.AllItems) { addItem = true; } if (addItem == true) { this.inventory[count].Init(); this.inventory[count].SetButton(kvp.Value.icon, kvp.Value); count++; } } this.gameObject.SetActive(true); }
public void Init(Action <string> callback = null, DialogCanvasController.InventoryFilters filter = DialogCanvasController.InventoryFilters.AllItems) { foreach (var slot in itemSlots) { slot.gameObject.SetActive(false); } if (selectedItem != null) { selectedItem.Deselect(); selectedItem = null; } this.activeFilter = filter; if (callback != null) { this.callbackAfterUse = callback; } //only displaying the main currencies (Gold & Gems) for now this.currenciesInUse.Clear(); this.currenciesInUse.Add("NT"); if (PF_PlayerData.inventoryByCategory != null && PF_PlayerData.virtualCurrency != null) { this.itemsToDisplay = PF_PlayerData.inventoryByCategory; //this.Currencies.Init(PF_PlayerData.virtualCurrency); } else { return; } string filterName; // GlobalStrings.INV_FILTER_DISPLAY_NAMES.TryGetValue(filter, out filterName); //this.StoreName.text = string.Format(GlobalStrings.INV_WINDOW_TITLE, filterName); int count = 0; foreach (var kvp in this.itemsToDisplay) { bool addItem = false; if (filter == DialogCanvasController.InventoryFilters.Containers) { if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString())) { addItem = true; } else { continue; } } else if (filter == DialogCanvasController.InventoryFilters.Keys) { if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString())) { addItem = true; } else { continue; } } else if (filter == DialogCanvasController.InventoryFilters.UsableInCombat) { if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString())) { addItem = true; } else { continue; } } else if (filter == DialogCanvasController.InventoryFilters.Material) { if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString())) { addItem = true; } else { continue; } } else if (filter == DialogCanvasController.InventoryFilters.AllItems) { addItem = true; } if (addItem == true) { itemSlots[count].gameObject.SetActive(true); itemSlots[count].Init(); itemSlots[count].SetButton(kvp.Value.icon, kvp.Value); count++; } } this.gameObject.SetActive(true); }
//TODO add in filter for things like: // only items on display // only containers // all items public void Init(Action <string> callback = null, DialogCanvasController.InventoryFilters filter = DialogCanvasController.InventoryFilters.AllItems) { activeFilter = filter; if (callback != null) { _callbackAfterUse = callback; } // only displaying the main currencies (Gold & Gems) for now currenciesInUse.Clear(); currenciesInUse.Add(GlobalStrings.GOLD_CURRENCY); currenciesInUse.Add(GlobalStrings.GEM_CURRENCY); if (PF_PlayerData.inventoryByCategory != null && PF_PlayerData.virtualCurrency != null) { _itemsToDisplay = PF_PlayerData.inventoryByCategory; Currencies.Init(PF_PlayerData.virtualCurrency); } else { ResetItemTiles(); return; } //reset ResetItemTiles(); string filterName; GlobalStrings.INV_FILTER_DISPLAY_NAMES.TryGetValue(filter, out filterName); StoreName.text = string.Format(GlobalStrings.INV_WINDOW_TITLE, filterName); nextPage.interactable = (_pageCount > 1); prevPage.interactable = false; int count = 0; foreach (var kvp in _itemsToDisplay) { if (count >= _itemsPerPage) { break; } bool addItem = false; if (filter == DialogCanvasController.InventoryFilters.Containers) { if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString())) { addItem = true; } else { continue; } } else if (filter == DialogCanvasController.InventoryFilters.Keys) { if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString())) { addItem = true; } else { continue; } } else if (filter == DialogCanvasController.InventoryFilters.UsableInCombat) { if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString())) { addItem = true; } else { continue; } } else if (filter == DialogCanvasController.InventoryFilters.AllItems) { addItem = true; } if (addItem) { inventory[count].Init(); inventory[count].SetButton(kvp.Value.icon, kvp.Value); count++; } } gameObject.SetActive(true); }