mirror of
				https://github.com/DerTyp7/harvestdale-unity.git
				synced 2025-11-04 07:08:58 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System.Collections;
 | 
						|
using System.Collections.Generic;
 | 
						|
using UnityEngine;
 | 
						|
 | 
						|
public class InventoryUI : GuiPanel
 | 
						|
{
 | 
						|
  [SerializeField] private GameObject slotPrefab;
 | 
						|
  [SerializeField] private GameObject slotListObj;
 | 
						|
  [SerializeField] private List<SlotUI> slotUIList;
 | 
						|
 | 
						|
  private Inventory playerInventory;
 | 
						|
 | 
						|
  private void Start()
 | 
						|
  {
 | 
						|
    Inventory.OnPlayerInventoryChanged += UpdateSlots;
 | 
						|
  }
 | 
						|
  public override void OnOpen()
 | 
						|
  {
 | 
						|
    if (slotUIList.Count == 0)
 | 
						|
    {
 | 
						|
      playerInventory = GameObject.FindGameObjectWithTag("Player").GetComponent<Inventory>();
 | 
						|
      CreateSlots();
 | 
						|
    }
 | 
						|
    UpdateSlots();
 | 
						|
    GuiManager.Instance.ClosePanel("Hotbar");
 | 
						|
  }
 | 
						|
 | 
						|
  public override void OnClose()
 | 
						|
  {
 | 
						|
    GuiManager.Instance.OpenPanel("Hotbar");
 | 
						|
  }
 | 
						|
  private void CreateSlots()
 | 
						|
  {
 | 
						|
    playerInventory = GameObject.FindGameObjectWithTag("Player").GetComponent<Inventory>();
 | 
						|
 | 
						|
    for (int i = 0; i < playerInventory.maxSlots; i++)
 | 
						|
    {
 | 
						|
      SlotUI newSlot = Instantiate(slotPrefab, Vector3.zero, Quaternion.identity, slotListObj.transform).GetComponent<SlotUI>();
 | 
						|
      newSlot.slotIndex = i;
 | 
						|
      slotUIList.Add(newSlot);
 | 
						|
    }
 | 
						|
  }
 | 
						|
  private void UpdateSlots()
 | 
						|
  {
 | 
						|
    int i = 0;
 | 
						|
    foreach (SlotUI slotUi in slotUIList)
 | 
						|
    {
 | 
						|
      slotUi.SetInventoryItem(playerInventory.items[i]);
 | 
						|
      i++;
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
}
 |