A temperature mod for Terrafirmacraft, A complex temperature system that can also be extended to non player entities.
Mechanics:
Interiors:
Keeping Warm:
Keeping Cool:
Entity Temperature Data Map: data/thermia/data_maps/entity_type/entity_temperatures.json
Entity Temperature is the primary data map that you'll encounter and is the method to add or remove the temperature system to entities. It has the following data:
Player entry for example:
"minecraft:player": {
"is_mob": false,
"is_tamed": false,
"max_entity_temperature": 25.0,
"min_entity_temperature": 5.0
}
Block Temperature Data Map: data/thermia/data_maps/block/block_temperature.json
Block Temperature is another primary data map. It's what tells thermia what block has what temperature and if it's hot and radiative or cold and conductive. It has the following data:
Bloomery entry for example:
"tfc:bloomery": {
"has_tfc_heat": false,
"is_radiative": true,
"search_cap": 16,
"state_temps": [
{
"value": 1200.0,
"when": [
"lit=true"
]
}
],
"temperature": 0.0
}
Fluid Temperature Data Map: data/thermia/data_maps/fluid/fluid_temperature.json
Much like Block Temperature, This handles fluid temperature. It will also allow you to define radiative temperatures for blocks containing these fluids such as tanks. Note this data map does not have special block state handling. It has the following data:
Lava entry for example:
"minecraft:lava": {
"is_radiative": true,
"search_cap": 32,
"temperature": 1000.0
}
Block Porosity Data Map data/thermia/data_maps/block/block_porosity.json
The Block Seal Data Map is for defining the leakiness of a block for interiors. As the interior system only uses Block Seal and isSolidRender to determine boundaries, Block Porosity also acts as a whitelist to allow non solid blocks as walls or edges. It has the following data:
Fences entry for example:
"#c:fences": {
"default_block_seal": 0.5,
"state_block_seal": [
{
"value": 0.25,
"when": [
"east=true",
"west=false"
]
},
{
"value": 0.25,
"when": [
"east=false",
"west=true"
]
},
{
"value": 0.25,
"when": [
"south=true",
"north=false"
]
},
{
"value": 0.25,
"when": [
"south=false",
"north=true"
]
}
]
}
Item Insulation Data Map: data/thermia/data_maps/item/item_insulation.json
Item insulation is a key part of Thermia's thermal system. It isolates you from the environment slowing or even stopping environmental temperature change. There are 4 attributes to the clothing system. It has the following data:
conductionProtection: Conduction does double duty, First and foremost it helps protect against contact sources like cold blocks. It also helps dampen the pull of environmental temperature. Must be within -1 to 1.
radiationProtection: Radiation protects from radiative sources like lava, fire or the sun. This helps with the sun on a hot day or when working by a forge. Must be within -1 to 1.
convectionProtection: This guards against the wind or moving air, Helping keeping the entity warm. Must be within -1 to 1.
rainProtection: Rain protection is fairly simple, It's a simple limit to how wet you can get while in the rain. Must be within 0 to 1.
Black bear pelt coat for example:
"thermia:black_bear_lined_coat": {
"conduction_protection": 0.85,
"convection_protection": 0.4,
"radiation_protection": 0.1,
"rain_protection": 0.85
}