37 lines
882 B
C#
37 lines
882 B
C#
|
using System;
|
||
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using BITFALL.Player.Inventory;
|
||
|
using BITKit;
|
||
|
using BITKit.Entities;
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace BITFALL.Player.Survival
|
||
|
{
|
||
|
public class PlayerEatService : EntityComponent
|
||
|
{
|
||
|
private IPlayerSurvivalService _survival;
|
||
|
private IPlayerInventory _inventory;
|
||
|
public override void OnStart()
|
||
|
{
|
||
|
base.OnStart();
|
||
|
_inventory = entity.Get<IPlayerInventory>();
|
||
|
_inventory.OnUseItem += OnUseItem;
|
||
|
_survival = entity.Get<IPlayerSurvivalService>();
|
||
|
}
|
||
|
|
||
|
private bool OnUseItem(IBasicItem arg)
|
||
|
{
|
||
|
switch (arg)
|
||
|
{
|
||
|
case var _ when arg.GetAssetable().TryGetProperty<PlayerEatAddHunger>(out var addHunger) &&
|
||
|
_survival.Elements.TryGetAny(x => x is PlayerSurvivalHunger, out var hunger):
|
||
|
hunger.Value += addHunger.Value;
|
||
|
return true;
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|