Assemblied created
This commit is contained in:
@ -1,67 +1,70 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// Inventory:
|
||||
/// <list type="bullet">Inventory Name: The name of the inventory.</list>
|
||||
/// <list type="bullet">Inventory Size: The amount of size the inventory has.</list>
|
||||
/// <list type="bullet">
|
||||
/// Invetory Items: List of all items in the inventory. No items in the world are "destroyed"
|
||||
/// instead all items in inventory are disabled, but can be looked up by their item name.
|
||||
/// </list>
|
||||
/// </summary>
|
||||
public class Inventory : MonoBehaviour
|
||||
namespace Item
|
||||
{
|
||||
[SerializeField] private string inventoryName;
|
||||
|
||||
[SerializeField] private int inventorySize;
|
||||
|
||||
[SerializeField] private List<string> inventoryItems;
|
||||
|
||||
private int inventoryReserved;
|
||||
|
||||
/// <summary>
|
||||
/// Adds item to inventory. Does not disable.
|
||||
/// Inventory:
|
||||
/// <list type="bullet">Inventory Name: The name of the inventory.</list>
|
||||
/// <list type="bullet">Inventory Size: The amount of size the inventory has.</list>
|
||||
/// <list type="bullet">
|
||||
/// Invetory Items: List of all items in the inventory. No items in the world are "destroyed"
|
||||
/// instead all items in inventory are disabled, but can be looked up by their item name.
|
||||
/// </list>
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
/// <returns></returns>
|
||||
public bool AddItem(CarryableItem item)
|
||||
public class Inventory : MonoBehaviour
|
||||
{
|
||||
if (item.ItemSize + inventoryReserved > inventorySize) return false;
|
||||
inventoryItems.Add(item.ItemName);
|
||||
inventoryReserved += item.ItemSize;
|
||||
//item.gameObject.SetActive(false);
|
||||
return true;
|
||||
}
|
||||
[SerializeField] private string inventoryName;
|
||||
|
||||
private bool FindItemOfName(string name, out CarryableItem item)
|
||||
{
|
||||
//NOTE: May not work. May need to move instead of disable objects.
|
||||
var items = Resources.FindObjectsOfTypeAll<CarryableItem>();
|
||||
[SerializeField] private int inventorySize;
|
||||
|
||||
foreach (var item2 in items)
|
||||
if (item2.ItemName == name)
|
||||
{
|
||||
item = item2;
|
||||
return true;
|
||||
}
|
||||
[SerializeField] private List<string> inventoryItems;
|
||||
|
||||
item = null;
|
||||
return false;
|
||||
}
|
||||
private int inventoryReserved;
|
||||
|
||||
public bool RemoveItem(string name)
|
||||
{
|
||||
CarryableItem itemFound;
|
||||
if (FindItemOfName(name, out itemFound))
|
||||
/// <summary>
|
||||
/// Adds item to inventory. Does not disable.
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
/// <returns></returns>
|
||||
public bool AddItem(Item.CarryableItem item)
|
||||
{
|
||||
itemFound.gameObject.SetActive(true);
|
||||
inventoryItems.Remove(itemFound.ItemName);
|
||||
inventoryReserved -= itemFound.ItemSize;
|
||||
if (item.ItemSize + inventoryReserved > inventorySize) return false;
|
||||
inventoryItems.Add(item.ItemName);
|
||||
inventoryReserved += item.ItemSize;
|
||||
//item.gameObject.SetActive(false);
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool FindItemOfName(string name, out Item.CarryableItem item)
|
||||
{
|
||||
//NOTE: May not work. May need to move instead of disable objects.
|
||||
var items = Resources.FindObjectsOfTypeAll<Item.CarryableItem>();
|
||||
|
||||
return false;
|
||||
foreach (var item2 in items)
|
||||
if (item2.ItemName == name)
|
||||
{
|
||||
item = item2;
|
||||
return true;
|
||||
}
|
||||
|
||||
item = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool RemoveItem(string name)
|
||||
{
|
||||
Item.CarryableItem itemFound;
|
||||
if (FindItemOfName(name, out itemFound))
|
||||
{
|
||||
itemFound.gameObject.SetActive(true);
|
||||
inventoryItems.Remove(itemFound.ItemName);
|
||||
inventoryReserved -= itemFound.ItemSize;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -2,53 +2,56 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
[Serializable]
|
||||
public class TempInventoryBuilderItem
|
||||
namespace Item
|
||||
{
|
||||
public string name;
|
||||
public int quantity;
|
||||
}
|
||||
|
||||
public class TempInventory : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private List<TempInventoryBuilderItem> initialInvent = new();
|
||||
|
||||
private readonly Dictionary<string, int> inventory = new();
|
||||
|
||||
// Start is called before the first frame update
|
||||
private void Start()
|
||||
[Serializable]
|
||||
public class TempInventoryBuilderItem
|
||||
{
|
||||
foreach (var item in initialInvent) inventory[item.name] = item.quantity;
|
||||
public string name;
|
||||
public int quantity;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
private void Update()
|
||||
public class TempInventory : MonoBehaviour
|
||||
{
|
||||
}
|
||||
[SerializeField] private List<TempInventoryBuilderItem> initialInvent = new();
|
||||
|
||||
public int GetQuantityOf(string name)
|
||||
{
|
||||
if (inventory.ContainsKey(name)) return inventory[name];
|
||||
return 0;
|
||||
}
|
||||
private readonly Dictionary<string, int> inventory = new();
|
||||
|
||||
public bool Add(string name, int quantity = 1)
|
||||
{
|
||||
if (inventory.ContainsKey(name))
|
||||
inventory[name] += quantity;
|
||||
else
|
||||
inventory.Add(name, quantity);
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool Remove(string name, int quantity = 1)
|
||||
{
|
||||
if (inventory.ContainsKey(name))
|
||||
// Start is called before the first frame update
|
||||
private void Start()
|
||||
{
|
||||
inventory[name] = Mathf.Max(inventory[name] - quantity, 0);
|
||||
return false;
|
||||
foreach (var item in initialInvent) inventory[item.name] = item.quantity;
|
||||
}
|
||||
|
||||
return false;
|
||||
// Update is called once per frame
|
||||
private void Update()
|
||||
{
|
||||
}
|
||||
|
||||
public int GetQuantityOf(string name)
|
||||
{
|
||||
if (inventory.ContainsKey(name)) return inventory[name];
|
||||
return 0;
|
||||
}
|
||||
|
||||
public bool Add(string name, int quantity = 1)
|
||||
{
|
||||
if (inventory.ContainsKey(name))
|
||||
inventory[name] += quantity;
|
||||
else
|
||||
inventory.Add(name, quantity);
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool Remove(string name, int quantity = 1)
|
||||
{
|
||||
if (inventory.ContainsKey(name))
|
||||
{
|
||||
inventory[name] = Mathf.Max(inventory[name] - quantity, 0);
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user