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; } }