Steam lobby implemented
This commit is contained in:
@ -1,74 +1,67 @@
|
||||
using System.Collections;
|
||||
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>
|
||||
/// 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
|
||||
{
|
||||
[SerializeField]
|
||||
private string inventoryName;
|
||||
[SerializeField]
|
||||
private int inventorySize;
|
||||
[SerializeField]
|
||||
private List<string> inventoryItems;
|
||||
[SerializeField] private string inventoryName;
|
||||
|
||||
[SerializeField] private int inventorySize;
|
||||
|
||||
[SerializeField] private List<string> inventoryItems;
|
||||
|
||||
private int inventoryReserved;
|
||||
|
||||
/// <summary>
|
||||
/// Adds item to inventory. Does not disable.
|
||||
/// Adds item to inventory. Does not disable.
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
/// <returns></returns>
|
||||
public bool AddItem(CarryableItem item)
|
||||
{
|
||||
if(item.ItemSize+inventoryReserved > inventorySize)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
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 CarryableItem item)
|
||||
{
|
||||
//NOTE: May not work. May need to move instead of disable objects.
|
||||
CarryableItem[] items = Resources.FindObjectsOfTypeAll<CarryableItem>();
|
||||
|
||||
foreach (CarryableItem item2 in items)
|
||||
{
|
||||
var items = Resources.FindObjectsOfTypeAll<CarryableItem>();
|
||||
|
||||
foreach (var item2 in items)
|
||||
if (item2.ItemName == name)
|
||||
{
|
||||
|
||||
item = item2;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
item = null;
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
public bool RemoveItem(string name)
|
||||
{
|
||||
|
||||
CarryableItem itemFound;
|
||||
if (FindItemOfName(name,out itemFound))
|
||||
if (FindItemOfName(name, out itemFound))
|
||||
{
|
||||
itemFound.gameObject.SetActive(true);
|
||||
inventoryItems.Remove(itemFound.ItemName);
|
||||
inventoryReserved -= itemFound.ItemSize;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
@ -1,8 +1,8 @@
|
||||
using System.Collections;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
[System.Serializable]
|
||||
[Serializable]
|
||||
public class TempInventoryBuilderItem
|
||||
{
|
||||
public string name;
|
||||
@ -11,57 +11,44 @@ public class TempInventoryBuilderItem
|
||||
|
||||
public class TempInventory : MonoBehaviour
|
||||
{
|
||||
|
||||
private Dictionary<string,int> inventory = new Dictionary<string,int>();
|
||||
[SerializeField]
|
||||
private List<TempInventoryBuilderItem> initialInvent = new List<TempInventoryBuilderItem>();
|
||||
[SerializeField] private List<TempInventoryBuilderItem> initialInvent = new();
|
||||
|
||||
private readonly Dictionary<string, int> inventory = new();
|
||||
|
||||
// Start is called before the first frame update
|
||||
private void Start()
|
||||
{
|
||||
foreach (var item in initialInvent) inventory[item.name] = item.quantity;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
private void Update()
|
||||
{
|
||||
}
|
||||
|
||||
public int GetQuantityOf(string name)
|
||||
{
|
||||
if (inventory.ContainsKey(name))
|
||||
{
|
||||
return inventory[name];
|
||||
}
|
||||
if (inventory.ContainsKey(name)) return inventory[name];
|
||||
return 0;
|
||||
}
|
||||
public bool Add(string name,int quantity=1)
|
||||
|
||||
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)
|
||||
public bool Remove(string name, int quantity = 1)
|
||||
{
|
||||
if (inventory.ContainsKey(name))
|
||||
{
|
||||
inventory[name] = Mathf.Max(inventory[name] - quantity, 0);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
foreach(TempInventoryBuilderItem item in initialInvent)
|
||||
{
|
||||
inventory[item.name] = item.quantity;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user