using Content.Shared.Atmos; using Content.Shared.Atmos.Piping.Portable.Components; using Content.Shared.Atmos.Visuals; using Content.Shared.Guidebook; namespace Content.Server.Atmos.Portable; [RegisterComponent] public sealed partial class SpaceHeaterComponent : Component { /// /// Current mode the space heater is in. Possible values : Auto, Heat and Cool /// [DataField, ViewVariables(VVAccess.ReadWrite)] public SpaceHeaterMode Mode = SpaceHeaterMode.Auto; /// /// The power level the space heater is currently set to. Possible values : Low, Medium, High /// [DataField, ViewVariables(VVAccess.ReadWrite)] public SpaceHeaterPowerLevel PowerLevel = SpaceHeaterPowerLevel.Medium; /// /// Maximum target temperature the device can be set to /// [DataField, ViewVariables(VVAccess.ReadWrite)] [GuidebookData] public float MaxTemperature = Atmospherics.T20C + 20; /// /// Minimal target temperature the device can be set to /// [DataField, ViewVariables(VVAccess.ReadWrite)] [GuidebookData] public float MinTemperature = Atmospherics.T0C - 10; /// /// Coefficient of performance. Output power / input power. /// Positive for heaters, negative for freezers. /// [DataField("heatingCoefficientOfPerformance")] [ViewVariables(VVAccess.ReadWrite)] public float HeatingCp = 1f; [DataField("coolingCoefficientOfPerformance")] [ViewVariables(VVAccess.ReadWrite)] public float CoolingCp = -0.9f; /// /// The delta from the target temperature after which the space heater switch mode while in Auto. Value should account for the thermomachine temperature tolerance. /// [DataField] [ViewVariables(VVAccess.ReadWrite)] public float AutoModeSwitchThreshold = 0.8f; /// /// Current electrical power consumption, in watts, of the space heater at medium power level. Passed to the thermomachine component. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public float PowerConsumption = 3500f; }