using Robust.Shared.GameObjects; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; using System.Collections.Generic; using Content.Shared.Tag; namespace Content.Shared.Composting; [RegisterComponent] public sealed partial class CompostingComponent : Component { /// /// List of tags allowed for composting (e.g., "Fruit", "Egg", "Meat"). /// [DataField("whitelist", customTypeSerializer: typeof(PrototypeIdListSerializer))] public List Whitelist = new(); /// /// Time in minutes for each item to be composted. /// [DataField("compostTime")] public float CompostTime = 6.0f; /// /// Items currently being composted and their completion times. /// [DataField("compostingItems")] public Dictionary CompostingItems = new(); /// /// Amount of finished compost ready to be collected. /// [DataField("readyCompost")] public int ReadyCompost = 0; /// /// Maximum items amount (composting + ready compost) that it can hold /// [DataField("maxCapacity")] public int MaxCapacity = 10; }