using Content.Shared.Atmos;
using Content.Shared.Temperature.HeatContainer;
using Content.Shared.Temperature.Systems;
namespace Content.Shared.Temperature.Components;
///
/// Handles changing temperature,
/// informing others of the current temperature.
///
[RegisterComponent]
[Access(typeof(SharedTemperatureSystem))]
public sealed partial class TemperatureComponent : Component, IHeatContainer
{
///
/// The specific heat capacity of this entity in J/(kg*K). Humans are about 3kJ/(kg*K)
///
[DataField]
public float SpecificHeat = 3000f;
[DataField]
public float HeatCapacity { get; set; }
[DataField]
public float Temperature { get; set; } = Atmospherics.T20C;
///
/// Thermal Conductivity in W/(K*m^2).
/// Human skin is about 0.3 W/(m*K)
/// Divide that by the thickness of skin of about 2mm giving us a final value of 150
/// Source: https://pmc.ncbi.nlm.nih.gov/articles/PMC8953946/
///
///
/// This value should be multiplied by a surface area value based on the amount of area in contact.
/// For Atmospherics, this is typically 2m^2, the surface area of the average body.
///
[DataField]
public float ThermalConductivity = 150f;
}