Assemblied created

This commit is contained in:
2023-06-02 00:30:58 -04:00
parent 3e1b55b036
commit 63039dbde2
99 changed files with 8302 additions and 1065 deletions

View File

@ -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;
}
}
}

View File

@ -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;
}
}
}