// ------------------------------------------------------------------------------- // // ------------------------------------------------------------------------------- protected override void TemplateInitialize(GameObject templateInstance, T item) { PanelSlot panel = templateInstance.GetComponent <PanelSlot>(); panel.Content = item; panel.imgIcon.sprite = GetIcon(item); panel.imgCurrency.sprite = GetCurrencyIcon(item); if (panel.imgCurrency.sprite == null) { panel.imgCurrency.enabled = false; } else { panel.imgCurrency.enabled = true; } panel.txtCost.text = GetCost(item); panel.txtCost.color = GetTextColor(item); panel.txtName.text = GetName(item); panel.txtName.color = GetTextColor(item); panel.btnTooltip.interactable = (item is MockEquipmentSlot) ? false : true; panel.btnAction.interactable = CanActivate(item); panel.btnUpgrade.gameObject.SetActive(CanUpgrade(item)); panel.btnTrash.gameObject.SetActive(CanTrash(item)); panel.btnAction.UpdateText(GetActionText(item)); panel.OnTooltipRequested += TooltipRequestedHandler; panel.OnActionRequested += ActionRequestedHandler; panel.OnUpgradeRequested += UpgradeRequestedHandler; panel.OnTrashRequested += TrashRequestedHandler; }
// ------------------------------------------------------------------------------- // DisposeItem // ------------------------------------------------------------------------------- protected override void DisposeItem(Transform item) { PanelSlot panel = item.GetComponent <PanelSlot>(); if (panel != null) { panel.OnTooltipRequested -= TooltipRequestedHandler; panel.OnActionRequested -= ActionRequestedHandler; panel.OnUpgradeRequested -= UpgradeRequestedHandler; panel.Content = null; } }
// ------------------------------------------------------------------------------- // Refresh // ------------------------------------------------------------------------------- public void Refresh() { foreach (Transform t in content) { Destroy(t.gameObject); } if (loot != null) { foreach (InventorySlot instance in loot) { GameObject newObj = (GameObject)Instantiate(slotPrefab, content); PanelSlot slot = newObj.GetComponent <PanelSlot>(); if (slot != null) { if (instance is InstanceResource) { slot.txtName.text = Finder.txt.getCurrencyName(((InstanceResource)instance).currencyType, false); slot.imgIcon.sprite = Finder.txt.getCurrencyIcon(((InstanceResource)instance).currencyType); } else { slot.txtName.text = instance.fullName; slot.imgIcon.sprite = instance.icon; } if (instance.Quantity > 0) { slot.txtCost.text = "x" + instance.Quantity.ToString(); } else { slot.txtCost.text = " "; } slot.imgCurrency.gameObject.SetActive(false); slot.btnAction.gameObject.SetActive(false); slot.btnUpgrade.gameObject.SetActive(false); slot.btnTooltip.gameObject.SetActive(false); slot.btnTrash.gameObject.SetActive(false); slot.transform.SetParent(content, false); slot.gameObject.SetActive(true); } } } }
// ------------------------------------------------------------------------------- // // ------------------------------------------------------------------------------- protected void RemoveItem(T tmpl) { foreach (Transform child in panel.transform) { if (child != null) { PanelSlot panel = child.GetComponent <PanelSlot>(); if (panel != null) { if (panel.Content == tmpl) { GameObject.Destroy(child.gameObject); } } } } }