Items/BuriedItem.cs
using Clover.Inventory;
using Clover.Items;
using Clover.Persistence;
using Clover.Player;
namespace Clover.Data;
[Category( "Clover/Items" )]
public class BuriedItem : Component, IPersistent, IDiggable
{
[RequireComponent] public WorldItem WorldItem { get; private set; }
private PersistentItem Item { get; set; }
public void OnSave( PersistentItem item )
{
item.SetSaveData( "Item", Item );
}
public void OnLoad( PersistentItem item )
{
Item = item.GetSaveData<PersistentItem>( "Item" );
}
public void SetItem( PersistentItem item )
{
Item = item;
}
public PersistentItem GetItem()
{
return Item;
}
public bool CanDig()
{
return true;
}
public bool OnDig( PlayerCharacter player, WorldItem item )
{
if ( Item == null )
{
Log.Warning( "No item to dig up" );
return false;
}
try
{
player.Inventory.PickUpItem( Item );
}
catch ( InventoryFullException e )
{
Log.Warning( e.Message );
return false;
}
catch ( System.Exception e )
{
Log.Error( e.Message );
return false;
}
return true;
}
}