using Content.Shared.Chemistry.Components; using Content.Shared.Temperature.Components; using Robust.Shared.Prototypes; namespace Content.Shared.EntityConditions.Conditions; /// /// Returns true if this entity has an amount of reagent in it within a specified minimum and maximum. /// /// public sealed partial class TemperatureEntityConditionSystem : EntityConditionSystem { protected override void Condition(Entity entity, ref EntityConditionEvent args) { if (entity.Comp.CurrentTemperature >= args.Condition.Min && entity.Comp.CurrentTemperature <= args.Condition.Max) args.Result = true; } } /// /// Returns true if this solution entity has an amount of reagent in it within a specified minimum and maximum. /// /// public sealed partial class SolutionTemperatureEntityConditionSystem : EntityConditionSystem { protected override void Condition(Entity entity, ref EntityConditionEvent args) { if (entity.Comp.Solution.Temperature >= args.Condition.Min && entity.Comp.Solution.Temperature <= args.Condition.Max) args.Result = true; } } /// public sealed partial class TemperatureCondition : EntityConditionBase { /// /// Minimum allowed temperature /// [DataField] public float Min = 0; /// /// Maximum allowed temperature /// [DataField] public float Max = float.PositiveInfinity; public override string EntityConditionGuidebookText(IPrototypeManager prototype) => Loc.GetString("entity-condition-guidebook-body-temperature", ("max", float.IsPositiveInfinity(Max) ? (float) int.MaxValue : Max), ("min", Min)); }