using Content.Server.Temperature.Systems; namespace Content.Server.Temperature.Components; /// /// Entity has an internal temperature which conducts heat from its surface. /// Requires to function. /// /// /// Currently this is only used for cooking but animal metabolism could use it too. /// Too hot? Suffering heatstroke, start sweating to cool off and increase thirst. /// Too cold? Suffering hypothermia, start shivering to warm up and increase hunger. /// [RegisterComponent, Access(typeof(TemperatureSystem))] public sealed partial class InternalTemperatureComponent : Component { /// /// Internal temperature which is modified by surface temperature. /// This gets set to on mapinit. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public float Temperature; /// /// Thermal conductivity of the material in W/m/K. /// Higher conductivity means its insides will heat up faster. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public float Conductivity = 0.5f; /// /// Average thickness between the surface and the inside. /// For meats and such this is constant. /// Thicker materials take longer for heat to dissipate. /// [DataField(required: true), ViewVariables(VVAccess.ReadWrite)] public float Thickness; /// /// Surface area in m^2 for the purpose of conducting surface temperature to the inside. /// Larger surface area means it takes longer to heat up/cool down /// /// /// For meats etc this should just be the area of the cooked surface not the whole thing as it's only getting heat from one side usually. /// [DataField(required: true), ViewVariables(VVAccess.ReadWrite)] public float Area; }