From ee1703b69b7977a8cd6d37dd097f425c8c905882 Mon Sep 17 00:00:00 2001 From: miepzerino <o.skotnik@gmail.com> Date: Thu, 03 Apr 2025 22:24:35 +0000 Subject: [PATCH] #42 added jobs for tile generation --- Assets/Scripts/Inventory/InventoryDisplay.cs | 94 +++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 82 insertions(+), 12 deletions(-) diff --git a/Assets/Scripts/Inventory/InventoryDisplay.cs b/Assets/Scripts/Inventory/InventoryDisplay.cs index a5ed7cf..0b2690b 100644 --- a/Assets/Scripts/Inventory/InventoryDisplay.cs +++ b/Assets/Scripts/Inventory/InventoryDisplay.cs @@ -1,4 +1,5 @@ using Assets.Scripts.Enums; +using Assets.Scripts.Helpers; using System; using System.Collections; using System.Collections.Generic; @@ -16,6 +17,8 @@ public GameObject itemUIPrefab; public GameObject itemNameDescription; public GameObject itemDescription; + public GameObject itemDeleteButton; + public GameObject inventoryMaxAmount; public List<GameObject> itemUIs = new List<GameObject>(); @@ -57,15 +60,20 @@ //} if (context.started) { - inventoryPanel.SetActive(!inventoryPanel.activeSelf); - if (inventoryPanel.activeSelf) - { - UpdateItemContentList(); - } - else - { - //ClearItemContentList(); - } + ToggleInventoryPanel(); + } + } + + public void ToggleInventoryPanel() + { + inventoryPanel.SetActive(!inventoryPanel.activeSelf); + if (inventoryPanel.activeSelf) + { + UpdateItemContentList(); + } + else + { + //ClearItemContentList(); } } @@ -151,19 +159,79 @@ //} if (itemNameDescription.GetComponent<ItemUIScript>()?.InventorySlot?.item?.itemName == inventorySlot.item.itemName) { - itemDescription.SetActive(!itemNameDescription.activeSelf); + itemDescription.transform.parent.parent.parent.gameObject.SetActive(!itemNameDescription.activeSelf); + itemDeleteButton.SetActive(!itemNameDescription.activeSelf); itemNameDescription.SetActive(!itemNameDescription.activeSelf); } - else { - itemDescription.SetActive(true); + else + { + itemDescription.transform.parent.parent.parent.gameObject.SetActive(true); + itemDeleteButton.SetActive(true); itemNameDescription.SetActive(true); } itemNameDescription.GetComponent<ItemUIScript>().InventorySlot = inventorySlot; itemDescription.GetComponent<ItemUIScript>().InventorySlot = inventorySlot; + ResetScrollbarForDescription(); + } + public void OnItemDeleteClick() + { + InventorySlot inventorySlot = itemNameDescription.GetComponent<ItemUIScript>()?.InventorySlot; + if (inventorySlot?.item?.itemName != null) + { + inventory.RemoveItem(inventorySlot.item, inventorySlot.quantity); + itemNameDescription.SetActive(false); + itemDeleteButton.SetActive(false); + ResetScrollbarForDescription(); + itemDescription.transform.parent.parent.parent.gameObject.SetActive(false); + } + } + + private void ResetScrollbarForDescription() + { + //var scrollRect = itemDescription.transform.parent.parent.GetComponent<ScrollRect>(); + //if (scrollRect != null) + //{ + // // Reset the scroll position + // scrollRect.normalizedPosition = Vector2.one; // (1,1) = top, (0,0) = bottom + + // // Force the scroll view to refresh its layout + // LayoutRebuilder.ForceRebuildLayoutImmediate(scrollRect.content); + + // // Reset the content's position + // var content = itemDescription.transform.Find("ItemTextDescription"); + // if (content != null) + // { + // RectTransform rectTransform = content.GetComponent<RectTransform>(); + // if (rectTransform != null) + // { + // rectTransform.anchoredPosition = Vector2.zero; + // } + // } + //} + // Reset the scroll position + var scrollrect = itemDescription.transform.parent.parent.GetComponent<ScrollRect>(); + if (scrollrect != null) + { + //Debug.Log("Resetting scroll position"); + scrollrect.verticalNormalizedPosition = 1; // 0 = top, 1 = bottom + } + // Reset the content's position + // transform.Find("ItemTextDescription") + //var content = itemDescription.transform.Find("ItemTextDescription"); + //if (content != null) + //{ + // RectTransform rectTransform = content.GetComponent<RectTransform>(); + // if (rectTransform != null) + // { + // rectTransform.anchoredPosition = Vector2.zero; + // } + //} } private void UpdateItemContentList() { + UIHelper.UpdateItemMaxCountText(inventoryMaxAmount.GetComponent<TextMeshProUGUI>(), inventory.items.Count, inventory.maxInventorySize); + // First, deactivate all existing itemUIs itemUIs.ForEach(itemUI => itemUI.SetActive(false)); @@ -194,7 +262,9 @@ // Add click event listener only if the itemUI was just created if (isCreated) + { itemUI.GetComponent<Button>().onClick.AddListener(() => OnItemClick(itemUIScript.InventorySlot)); + } else { // Update the itemUIScript of the itemNameDescription panel if the item is already selected -- Gitblit v1.9.3