Skip to content
Snippets Groups Projects
InventoryPanel.cs 3.39 KiB
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using BigSock.Item;
using BigSock.Service;
using UnityEngine.UI;

namespace BigSock.UI
{
	public class InventoryPanel : MonoBehaviour
	{
		public PlayerController player;
		public const string INVSLOT = "UI/Inventoryslot";
		public const string ITEM = "UI/Item";

		public GridLayoutGroup gridBackPack;
		public GridLayoutGroup gridTools;
		public GridLayoutGroup gridAccessory;
		public GridLayoutGroup gridEquipment;

		public void Start() {
			GenerateInv();
		}

		public void GenerateInv()
		{
			var inventory = player.Inventory;
			
			for (int i = 0; i < inventory.Backpack.Count; ++i)
			{
					var invSlot = PrefabService.SINGLETON.Instance(INVSLOT, gridBackPack.transform);
					var invScript = invSlot.GetComponent<ItemSlot>();
					invScript.inventory = inventory;
					invScript.inventoryType = InventoryType.Backpack;
					invScript.position = i;
					var item = inventory.Backpack[i];
					if (item != null)
					{
							var itemPref = PrefabService.SINGLETON.Instance(ITEM, transform);
							var itemScript = itemPref.GetComponent<ItemPref>();
							itemScript.item = item;
							itemScript.itemSlot = invScript;
							invScript.item = itemScript;
							itemScript.transform.position = invScript.transform.position;
					}
			}
			for (int i = 0; i < inventory.Tools.Count; ++i)
			{
					var invSlot = PrefabService.SINGLETON.Instance(INVSLOT, gridTools.transform);
					var invScript = invSlot.GetComponent<ItemSlot>();
					invScript.inventory = inventory;
					invScript.inventoryType = InventoryType.Tool;
					invScript.position = i;
					var item = inventory.Tools[i];
					if (item != null)
					{
							var itemPref = PrefabService.SINGLETON.Instance(ITEM, transform);
							var itemScript = itemPref.GetComponent<ItemPref>();
							itemScript.item = item;
							itemScript.itemSlot = invScript;
							invScript.item = itemScript;
							itemScript.transform.position = invScript.transform.position;
					}
			}
			for (int i = 0; i < inventory.Equipment.Count; ++i)
			{
					var invSlot = PrefabService.SINGLETON.Instance(INVSLOT, gridEquipment.transform);
					var invScript = invSlot.GetComponent<ItemSlot>();
					invScript.inventory = inventory;
					invScript.inventoryType = InventoryType.Equipment;
					invScript.position = i;
					var item = inventory.Equipment[i];
					if (item != null)
					{
							var itemPref = PrefabService.SINGLETON.Instance(ITEM, transform);
							var itemScript = itemPref.GetComponent<ItemPref>();
							itemScript.item = item;
							itemScript.itemSlot = invScript;
							invScript.item = itemScript;
							itemScript.transform.position = invScript.transform.position;
					}
			}
			for (int i = 0; i < inventory.Accessories.Count; ++i)
			{
					var invSlot = PrefabService.SINGLETON.Instance(INVSLOT, gridAccessory.transform);
					var invScript = invSlot.GetComponent<ItemSlot>();
					invScript.inventory = inventory;
					invScript.inventoryType = InventoryType.Accessory;
					invScript.position = i;
					var item = inventory.Accessories[i];
					if (item != null)
					{
							var itemPref = PrefabService.SINGLETON.Instance(ITEM, transform);
							var itemScript = itemPref.GetComponent<ItemPref>();
							itemScript.item = item;
							itemScript.itemSlot = invScript;
							invScript.item = itemScript;
							itemScript.transform.position = invScript.transform.position;
					}
			}

		}
	}
}