using Content.Shared.Alert.Components;
using Content.Shared.Nutrition.Components;
using Content.Shared.Nutrition.EntitySystems;
namespace Content.Client.Nutrition.EntitySystems;
///
public sealed partial class ClientSatiationSystem : SatiationSystem
{
[Dependency] private EntityQuery _counterQuery = default!;
[SubscribeLocalEvent]
private void OnGenericCounter(Entity entity, ref GetGenericAlertCounterAmountEvent args)
{
if (args.Handled)
return;
// We use a seperate component to avoid having to resolve every single satiation type on an entity.
// Instead, we just have a component that specifies which one we're looking for.
if (!_counterQuery.TryComp(args.SpriteView, out var alert))
return;
if (!ProtoMan.Resolve(alert.SatiationType, out var satiation))
return;
if (GetValueOrNull(entity, satiation) is not { } amount)
return;
args.Amount = (int) amount;
}
}