Advertisement
evelynshilosky

InventorySystem - Part 6

Jun 2nd, 2024
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.72 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public class InventorySystem : MonoBehaviour
  6. {
  7.  
  8.     public static InventorySystem Instance { get; set; }
  9.  
  10.     public GameObject inventoryScreenUI;
  11.    
  12.     public List<GameObject> slotList = new List<GameObject>();
  13.  
  14.     public List<string> itemList = new List<string>();
  15.  
  16.     public GameObject itemToAdd;
  17.  
  18.     public GameObject whatSlotToEquip;
  19.    
  20.     public bool isOpen;
  21.  
  22.     //public bool isFull;
  23.  
  24.  
  25.     private void Awake()
  26.     {
  27.         if (Instance != null && Instance != this)
  28.         {
  29.             Destroy(gameObject);
  30.         }
  31.         else
  32.         {
  33.             Instance = this;
  34.         }
  35.     }
  36.  
  37.  
  38.     void Start()
  39.     {
  40.         isOpen = false;
  41.         //isFull = false;
  42.  
  43.  
  44.         PopulateSlotList();
  45.  
  46.     }
  47.  
  48.  
  49.     private void PopulateSlotList()
  50.     {        
  51.         foreach(Transform child in inventoryScreenUI.transform)
  52.         {
  53.             if (child.CompareTag("Slot"))
  54.             {
  55.                 slotList.Add(child.gameObject);
  56.             }
  57.         }
  58.     }
  59.  
  60.  
  61.  
  62.  
  63.     void Update()
  64.     {
  65.  
  66.         if (Input.GetKeyDown(KeyCode.I) && !isOpen)
  67.         {
  68.            
  69.             Debug.Log("i is pressed");
  70.             inventoryScreenUI.SetActive(true);
  71.             Cursor.lockState = CursorLockMode.None;
  72.             isOpen = true;
  73.  
  74.         }
  75.         else if (Input.GetKeyDown(KeyCode.I) && isOpen)
  76.         {
  77.             inventoryScreenUI.SetActive(false);
  78.             Cursor.lockState = CursorLockMode.Locked;
  79.             isOpen = false;
  80.         }
  81.     }
  82.  
  83.  
  84.  
  85.  
  86.  
  87.     public void AddToInventory(string itemName)
  88.     {
  89.        
  90.             whatSlotToEquip = FindNextEmptySlot();
  91.  
  92.             itemToAdd = Instantiate(Resources.Load<GameObject>(itemName), whatSlotToEquip.transform.position, whatSlotToEquip.transform.rotation);  
  93.             itemToAdd.transform.SetParent(whatSlotToEquip.transform);
  94.  
  95.             itemList.Add(itemName);
  96.  
  97.     }
  98.  
  99.  
  100.  
  101.  
  102.     private GameObject FindNextEmptySlot()
  103.     {
  104.         foreach(GameObject slot in slotList)
  105.         {
  106.  
  107.             if (slot.transform.childCount == 0)
  108.             {
  109.                
  110.                 return slot;
  111.                
  112.             }                
  113.         }
  114.  
  115.         return new GameObject();
  116.     }
  117.  
  118.  
  119.  
  120.     public bool CheckIfFull()
  121.     {
  122.        
  123.         int counter = 0;
  124.  
  125.         foreach(GameObject slot in slotList)
  126.         {
  127.             if (slot.transform.childCount > 0)
  128.             {
  129.                 counter += 1;          
  130.             }
  131.  
  132.         }
  133.  
  134.  
  135.         if (counter == 21)
  136.         {
  137.             return true;
  138.         }
  139.         else
  140.         {
  141.             return false;
  142.         }
  143.  
  144.  
  145.     }
  146.  
  147.  
  148.  
  149. }
  150.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement