Advertisement
evelynshilosky

InventorySystem - Part 1

Jan 21st, 2025
17
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.93 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public class InventorySystem : MonoBehaviour
  6. {
  7.     public static InventorySystem Instance { get; private set; }
  8.  
  9.     public int maxSlots = 15;
  10.     public List<Item> inventory = new List<Item>();
  11.     public Item leftHandItem;
  12.     public Item rightHandItem;
  13.     public Item backpack;
  14.  
  15.     private Dictionary<Item, List<Item>> storageInventories = new Dictionary<Item, List<Item>>();
  16.  
  17.     private void Awake()
  18.     {
  19.         if (Instance == null)
  20.         {
  21.             Instance = this;
  22.             DontDestroyOnLoad(gameObject);
  23.         }
  24.         else
  25.         {
  26.             Destroy(gameObject);
  27.         }
  28.     }
  29.  
  30.     public bool AddItem(Item item)
  31.     {
  32.         if (inventory.Count < maxSlots)
  33.         {
  34.             inventory.Add(item);
  35.             return true;
  36.         }
  37.         return false;
  38.     }
  39.  
  40.     public void RemoveItem(Item item)
  41.     {
  42.         inventory.Remove(item);
  43.     }
  44.  
  45.     public bool HasItem(Item item)
  46.     {
  47.         return inventory.Contains(item);
  48.     }
  49.  
  50.     public void EquipItem(Item item, bool isLeftHand, bool isTwoHanded)
  51.     {
  52.         if (isTwoHanded)
  53.         {
  54.             leftHandItem = item;
  55.             rightHandItem = item;
  56.         }
  57.         else if (isLeftHand)
  58.         {
  59.             leftHandItem = item;
  60.         }
  61.         else
  62.         {
  63.             rightHandItem = item;
  64.         }
  65.     }
  66.  
  67.     public void UnequipItem(bool isLeftHand)
  68.     {
  69.         if (leftHandItem != null && leftHandItem.isTwoHanded)
  70.         {
  71.             leftHandItem = null;
  72.             rightHandItem = null;
  73.         }
  74.         else if (isLeftHand)
  75.         {
  76.             leftHandItem = null;
  77.         }
  78.         else
  79.         {
  80.             rightHandItem = null;
  81.         }
  82.     }
  83.  
  84.     public void EquipBackpack(Item backpackItem)
  85.     {
  86.         if (backpack != null)
  87.         {
  88.             inventory.Add(backpack);
  89.         }
  90.         backpack = backpackItem;
  91.         inventory.Remove(backpackItem);
  92.     }
  93.  
  94.     public void UnequipBackpack()
  95.     {
  96.         if (backpack != null)
  97.         {
  98.             inventory.Add(backpack);
  99.             backpack = null;
  100.         }
  101.     }
  102.  
  103.     public void AddItemToStorage(Item storageItem, Item itemToStore)
  104.     {
  105.         if (!storageInventories.ContainsKey(storageItem))
  106.         {
  107.             storageInventories[storageItem] = new List<Item>();
  108.         }
  109.         storageInventories[storageItem].Add(itemToStore);
  110.     }
  111.  
  112.     public List<Item> GetStorageInventory(Item storageItem)
  113.     {
  114.         if (storageInventories.TryGetValue(storageItem, out List<Item> items))
  115.         {
  116.             return items;
  117.         }
  118.         return new List<Item>();
  119.     }
  120.  
  121.     public void RemoveItemFromStorage(Item storageItem, Item itemToRemove)
  122.     {
  123.         if (storageInventories.TryGetValue(storageItem, out List<Item> items))
  124.         {
  125.             items.Remove(itemToRemove);
  126.         }
  127.     }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement