Player/Player.Inventory.cs
namespace CryptidHunt;
public partial class Player
{
public Item[] Items { get; set; } = new Item[16];
public bool Give( Item item )
{
if ( Items == null || !Items.Any( x => !x.IsValid() ) ) return false; // Invalid or full inventory
var firstEmptySlot = Array.FindIndex( Items, x => !x.IsValid() );
Items[firstEmptySlot] = item;
item.WorldPosition = WorldPosition;
item.GameObject.SetParent( GameObject );
item.GameObject.Enabled = false;
return true;
}
public void Remove( Item item )
{
if ( Items == null ) return;
var index = Array.FindIndex( Items, x => x == item );
if ( index == -1 ) return;
if ( Holding == item )
ChangeHolding( null );
item.GameObject.SetParent( null );
item.GameObject.Enabled = true;
Items[index] = null;
Inventory.Instance.SelectedItem = null;
}
}