Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Creators
Details
Alpha, Subject to changes
Summary:
A temperature mod for Terrafirmacraft, A complex temperature system that can also be extended to non player entities.
Keeping Warm:
- Seeking sunlight
- Sheltering from wind
- Heat sources such as fire, TFC sources are also supported
- Heated items such as ingots, pots, etc.
- Insulation or clothing
Keeping Cool:
- Seeking shade
- Seeking wind
- Swimming
- Contact with cold blocks such as ice
- Insulation or clothing
Interiors:
- Dynamic flood fill system allowing for any structure
- Thermodynamic based model, Internal volume requires energy and time to warm
- Block porosity allows for functional differing block states, Eg. trapdoor as windows.
Data Driven:
Entity Temperature Data Map: data/thermia/data_maps/entity_type/entity_temperatures.json
Spoiler
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:
- max_entity_temperature: Maximum temperature or climate for an entity.
- min_entity_temperature: Minimum temperature or climate for an entity.
- is_mob: This is for deciding if the entity receives the simple or complex player model.
- is_tamed: If the entity requires taming for the temperature system to enable.
Block Temperature Data Map: data/thermia/data_maps/block/block_temperature.json
Spoiler
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:
- temperature: Temperature of the block or default temperature if it has blockstates, If hasTFCHeat is true this must be 0.
- search_cap: How many should thermia look for and save in each nearby block search.
- has_tfc_heat: If the block has TFC's heat mechanic, If this is true the temperature must be 0.
- is_radiative: If this block should be treated like a radiation source. If this is false it's treated as a contact source, Eg. Ice.
- is_home_block: Deprecated, Ignore it.
- state_temps: This is more complex. This allows for specific blockstates to have different temperatures, The bloomery for example has "state_temps":{"lit=true":1200}. With a temperature value of 0, this means the bloomery will be 0 temperature until it's blockstate lit = true.
Fluid Temperature Data Map: data/thermia/data_maps/fluid/fluid_temperature.json
Spoiler
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:
- temperature: Temperature of the fluid.
- search_cap: How many should thermia look for and save in each nearby block search.
- is_radiative: If this block should be treated like a radiation source. If this is false it's treated as a submersion source, Eg. Water.
Block Porosity Data Map data/thermia/data_maps/block/block_porosity.json
Spoiler
The Block Porosity Data Map is for defining the leakiness of a block for interiors. As the interior system only uses Block Porosity and isSolidRender to determine boundaries, Block Porosity also acts as a white list to allow non solid blocks as walls or edges. It should be noted that porosity is inverted, so a solid block would be near 1.0 and an open block would be near 0.0. It has the following data:
- state_porosity: Much like the state_temps value for Block Temperature, This is a complex entry for allowing a block with multiple block state values to have differing porosity or leakiness values. Eg. The trapdoors entry: "state_porosity":{"open=false":0.1,"open=true": 0.95}. As with trapdoors their vertical position is considered "open" however closed for the purpose of a window.
- default_porosity: The default porosity if none of the state_porosity values apply.
Item Insulation Data Map: data/thermia/data_maps/item/item_insulation.json
Spoiler
Item insulation is a key part of Thermia's thermal system. It isolates you from the environment slowing or even stopping environmental temperature change. Insulation is averaged by number of item slots occupied and not by number of items. Armour/Clothing has it's own averaging. It has the following data:
- insulation_modifier: The single value in this data map. Positive values insulate and slow environmental effects, Negative values increase environmental effects, Eg. Metal Armour.


