using Content.Shared.Storage; namespace Content.Server.Medical.BiomassReclaimer { [RegisterComponent] public sealed partial class BiomassReclaimerComponent : Component { /// /// This gets set for each mob it processes. /// When it hits 0, there is a chance for the reclaimer to either spill blood or throw an item. /// [ViewVariables] public float RandomMessTimer = 0f; /// /// The interval for . /// [ViewVariables(VVAccess.ReadWrite), DataField] public TimeSpan RandomMessInterval = TimeSpan.FromSeconds(5); /// /// This gets set for each mob it processes. /// When it hits 0, spit out biomass. /// [ViewVariables] public float ProcessingTimer = default; /// /// Amount of biomass that the mob being processed will yield. /// This is calculated from the YieldPerUnitMass. /// Also stores non-integer leftovers. /// [ViewVariables] public float CurrentExpectedYield = 0f; /// /// The reagent that will be spilled while processing a mob. /// [ViewVariables] public string? BloodReagent; /// /// Entities that can be randomly spawned while processing a mob. /// public List SpawnedEntities = new(); /// /// How many units of biomass it produces for each unit of mass. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public float YieldPerUnitMass = 0.4f; /// /// How many seconds to take to insert an entity per unit of its mass. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public float BaseInsertionDelay = 0.1f; /// /// How much to multiply biomass yield from botany produce. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public float ProduceYieldMultiplier = 0.25f; /// /// The time it takes to process a mob, per mass. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public float ProcessingTimePerUnitMass = 0.5f; /// /// Will this refuse to gib a living mob? /// [ViewVariables(VVAccess.ReadWrite), DataField] public bool SafetyEnabled = true; } }