namespace Content.Server.Fluids.Components { [RegisterComponent] public sealed class DrainComponent : Component { public const string SolutionName = "drainBuffer"; [DataField("accumulator")] public float Accumulator = 0f; /// /// How many units per second the drain can absorb from the surrounding puddles. /// Divided by puddles, so if there are 5 puddles this will take 1/5 from each puddle. /// This will stay fixed to 1 second no matter what DrainFrequency is. /// [DataField("unitsPerSecond")] public float UnitsPerSecond = 6f; /// /// How many units are ejected from the buffer per second. /// [DataField("unitsDestroyedPerSecond")] public float UnitsDestroyedPerSecond = 1f; /// /// How many (unobstructed) tiles away the drain will /// drain puddles from. /// [DataField("range")] public float Range = 2f; /// /// How often in seconds the drain checks for puddles around it. /// If the EntityQuery seems a bit unperformant this can be increased. /// [DataField("drainFrequency")] public float DrainFrequency = 1f; } }