ThermooСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (93)
release
Thermoo Fabric 10.1.5
10.1.531 июл. 2026 г.3,6 тыс.Minecraft: 26.1, 26.1.1, 26.1.2fabric, quilt
Что нового
- Moved mod metadata files to common module
- This should make classtweakers apply for users relying on the common module in Loom
release
Thermoo NeoForge 10.1.5
10.1.531 июл. 2026 г.567Minecraft: 26.1, 26.1.1, 26.1.2neoforge
Что нового
- Moved mod metadata files to common module
- This should make classtweakers apply for users relying on the common module in Loom
release
Thermoo NeoForge 10.1.4
10.1.428 июл. 2026 г.75Minecraft: 26.1, 26.1.1, 26.1.2neoforge
Что нового
# Thermoo 10.1.4
- Publish MDG-compatible AT/Interface injections via NeoLoom
- Updated Argentine Spanish translations
release
Thermoo Fabric 10.1.4
10.1.428 июл. 2026 г.253Minecraft: 26.1, 26.1.1, 26.1.2fabric, quilt
Что нового
# Thermoo 10.1.4
- Publish MDG-compatible AT/Interface injections via NeoLoom
- Updated Argentine Spanish translations
release
Thermoo NeoForge 10.1.3
10.1.330 июн. 2026 г.149Minecraft: 26.1, 26.1.1, 26.1.2neoforge
Что нового
- Fixed crash with Polymer patch
release
Thermoo Fabric 10.1.3
10.1.330 июн. 2026 г.2,1 тыс.Minecraft: 26.1, 26.1.1, 26.1.2fabric, quilt
Что нового
- Fixed crash with Polymer patch
release
Thermoo Fabric 10.1.1
10.1.123 июн. 2026 г.795Minecraft: 26.1, 26.1.1, 26.1.2fabric, quilt
Что нового
# Thermoo 10.1: Multiloaderification
Thermoo now fully supports both Fabric and Neoforge for Minecraft 26.1.x. The Neoforge version of Thermoo no longer requires Forgified Fabric API, but it does require the Yumi Minecraft Foundation library (which is bundled with the mod).
This release should also be fully compatible with 10.0.x. There are should be no breaking changes for users of this mod. However, as Thermoo now ships a common module, some things may change for developers consuming this mod.
Changelog:
- Ported Thermoo to a multi-loader architecture based on Neo-Loom.
- Thermoo now ships `thermoo-common`, `thermoo-fabric`, and `thermoo-neoforge` jars.
- Added support for Neoforge.
- Added a new `ThermooDataComponentMapBuilder` interface to support what the `FabricDataComponentMapBuilder` interface does, but in a loader-agnostic way.
10.1.1 changelog:
- Fixed javadoc jar not generating any data
- Fixed the patch list url and removed the option from the default config
release
Thermoo NeoForge 10.1.1
10.1.123 июн. 2026 г.83Minecraft: 26.1, 26.1.1, 26.1.2neoforge
Что нового
# Thermoo 10.1: Multiloaderification
Thermoo now fully supports both Fabric and Neoforge for Minecraft 26.1.x. The Neoforge version of Thermoo no longer requires Forgified Fabric API, but it does require the Yumi Minecraft Foundation library (which is bundled with the mod).
This release should also be fully compatible with 10.0.x. There are should be no breaking changes for users of this mod. However, as Thermoo now ships a common module, some things may change for developers consuming this mod.
Changelog:
- Ported Thermoo to a multi-loader architecture based on Neo-Loom.
- Thermoo now ships `thermoo-common`, `thermoo-fabric`, and `thermoo-neoforge` jars.
- Added support for Neoforge.
- Added a new `ThermooDataComponentMapBuilder` interface to support what the `FabricDataComponentMapBuilder` interface does, but in a loader-agnostic way.
10.1.1 changelog:
- Fixed javadoc jar not generating any data
- Fixed the patch list url and removed the option from the default config
release
Thermoo 10.0.1
10.0.122 июн. 2026 г.293Minecraft: 26.1, 26.1.1, 26.1.2fabric, quilt
Что нового
* Fixed attribute modifier temperature status effect removing itself wrongly
release
Thermoo 10.0.0
10.0.09 июн. 2026 г.2 тыс.Minecraft: 26.1, 26.1.1, 26.1.2fabric, quilt
Что нового
# Thermoo 10.0.0 for Minecraft 26.1.x
The full release of Thermoo 10 for Minecraft 26.1.x. Thermoo 10 is now considered stable and no further breaking changes are planned. Documentation has now also been updated.
New from 10.0.0-beta.4:
* Added a `IS_COLD_ENOUGH_TO_SNOW` event to the `ThermooSeasonEvents` class.
* This provides a way to check if a seasons mod believes that an area should be snowy without relying on multiple redundant or inconsistent vanilla checks.
* A convenience method to invoke this event has been added in `ThermooSeason`.
* Introduced a more fool-proof way of registering attributes to entities to avoid invalid data from other mods prematurely cancelling `createLivingAttributes`.
Full changelog from 9.x:
* Updated to Minecraft 26.1.x
* Replaced API exposure of Fabric API with Yumi classes.
* For example:
* `net.fabricmc.fabric.api.event.Event` -> `dev.yumi.commons.event.Event`,
* `net.fabricmc.fabric.api.util.TriState` -> `dev.yumi.commons.TriState`
* Usage of Yumi events is essentially identical to Fabric API events, but it does not tie Thermoo's API to another Minecraft mod.
* This is primarily intended to make a future non-FFAPI based Neoforge port of Thermoo possible.
* I will not be making FFAPI-free ports of Frostiful.
* Replaced the Temperature Effect API with the Temperature Status API ([#104](https://github.com/TheDeathlyCow/thermoo/pull/104)).
* Added Temperature Status Tags ([#106](https://github.com/TheDeathlyCow/thermoo/pull/106)).
* Replaced `HeatingMode` with a data-driven temperature sources API ([#109](https://github.com/TheDeathlyCow/thermoo/pull/109)).
* Added F3 debug screen entries for temperature, soaking, and environment providers.
* Added a new event: `TemperatureStatusEvents#ALLOW_TEMPERATURE_STATUS` that allows for finer grained control over temperature statuses than the enable/disable API.
* The command `/thermoo temperature status` now permits `enable` or `disable` syntax as an alternative to `set_enabled`.
* Removed previously deprecated usage of `/thermoo environment relativehumidity`, users must now use `/thermoo environment relative_humidity`.
* Added version numbers to API packages.
* For example:
* `com.github.thedeathlycow.thermoo.api.command` -> `com.github.thedeathlycow.thermoo.api.command.v1`
* `com.github.thedeathlycow.thermoo.api.temperature.effect` -> `com.github.thedeathlycow.thermoo.api.temperature.status.v2`
* `com.github.thedeathlycow.thermoo.api.environment.*` -> `com.github.thedeathlycow.thermoo.api.environment.v2.*`
* `com.github.thedeathlycow.thermoo.api.item.*` -> `com.github.thedeathlycow.thermoo.api.item.v2.*`
* `com.github.thedeathlycow.thermoo.api.season.*` -> `com.github.thedeathlycow.thermoo.api.season.v2.*`
* `com.github.thedeathlycow.thermoo.api.util.*` -> `com.github.thedeathlycow.thermoo.api.util.v1.*` (these classes may still be split up to more specific packages)
* `com.github.thedeathlycow.thermoo.api.client.*` -> `com.github.thedeathlycow.thermoo.api.client.v1.*`
* Removed command definition classes from API.
* These are now implementation classes.
* Renamed `*ArgumentType` classes to `*Argument` in the command API.
* Moved the `ThermooRegistries` and `ThermooRegistryKeys` classes to a `registry` package in the core API
* Moved the `predicate` package and `ThermooAttributes` class to a new entity API package: `com.github.thedeathlycow.thermoo.api.entity.v1`
* Split the `Item` and `EntityType` tags in `ThermooTags` into classes in the entity API (`ThermooEntityTypeTags`) and item API (`ThermooItemTags`), respectively
* Removed `ThermooTags`.
* Usage of `GuiGraphics` in `StatusBarOverlayRenderEvents` was replaced with `GuiGraphicsExtractor`
* Moved all classes previously under the `util` package to the `core.v2` package.
* Renamed `TemperatureRecord#add(TemperatureRecord)` to `TemperatureRecord#shift(TemperatureRecord)`, and deprecated the `add` method.
* Added convenience methods for creating instances of `TemperatureChange` to `BuiltinTemperatureSources`.
* Refactored the `TemperatureLootCondition` and `SoakedLootCondition` classes to no longer be records.
* Replaced the `EnvironmentProviderType` class and its usage with direct registration of `MapCodec`s.
* Established a more uniform and consistent naming scheme for the builtin implementations of `EnvironmentProvider`. Classes were renamed as follows:
* `ConstantEnvironmentProvider` -> `ConstantProvider`
* `ModifyEnvironmentProvider` -> `ModifyProvider`
* `TemperatureShiftEnvironmentProvider` -> `ShiftTemperatureProvider`
* `SetTemperatureFromPressure` -> `SetTemperatureFromPressureProvider`
* `SetPressureFromAltitude` -> `SetPressureFromAltitudeProvider`
* `TemperateSeasonEnvironmentProvider` -> `TemperateSeasonSelector`
* `TropicalSeasonEnvironmentProvider` -> `TropicalSeasonSelector`
* `LightThresholdLightProvider` -> `LightThresholdSelector`
* `WeatherStateEnvironmentProvider` -> `WeatherStateSelector`
* `BiomePrecipitationTypeEnvironmentProvider` -> `PrecipitationTypeSelector`
* Renamed Thermoo registry classes to match Mojmap:
* `ThermooRegistries` -> `ThermooBuiltInRegistries`
* `ThermooRegistryKeys` -> `ThermooRegistries`
## Data-driven Temperature Sources
* Moved all classes and packages under `com.github.thedeathlycow.thermoo.api.temperature.*` EXCEPT for the `status` package to `com.github.thedeathlycow.thermoo.api.core.v2`.
* Removed the `HeatingMode` and `HeatingModes` classes.
* The method `TemperatureAware#thermoo$addTemperature(int, HeatingMode)` was converted to `TemperatureAware#thermoo$addTemperature(int, TemperatureChange)`.
* `TemperatureChange` now stores information about the context of individual temperature changes, including source, cause, direct cause, and position, and this data is now passed to various temperature change related events.
* Added a new `ThermooLevel` interface that is injected onto all `Level` instances by mixin.
* `ThermooLevel` provides access to a set of shared instances of `TemperatureChange`.
* The `ALLOW_X_UPDATE` and `ALLOW_X_CHANGE` events in `LivingEntityTemperatureTickEvents` were removed and replaced with more general events in `TemperatureChangeEvents`.
* The `GET_X_CHANGE` event in `LivingEntityTemperatureTickEvents` is now a source-key mapped event returned by `getTemperatureChange` that allows for the same sort of event to apply to any temperature source - except absolute and environment sources.
* The `/thermoo temperature (add|remove)` sub-commands now provide more ability to specify context about a temperature change with `at` and `by` syntax, essentially to provide the data for the `TemperatureChange` class.
### Example Migration
A simple migration of adding temperature:
```diff
void foo(LivingEntity e) {
- e.thermoo$addTemperature(10, HeatingModes.ACTIVE);
+ e.thermoo$addTemperature(10, e.level().thermoo$temperatureSources().active());
}
```
## Temperature Status API
The Temperature Effect API was rewritten and renamed to the Temperature Status API to better distinguish between the JSON files (statuses) and the effect types that actually do the work. The API largely does the same thing, but here is a summary of the changes:
- Replaced the `thermoo/temperature_effect` registry with `thermoo/temperature_status` registry
- The new status registry is now an actual registry, which supports tags, synchronisation, and `Holder`s, and all that.
- Replaced `config` objects with a direct `effects` list entry.
- Moved type delegation to entries of the effects, rather than at the root of the registry object.
- Merged the `attribute_modifier` and `scaling_attribute_modifier` into a single type, differentiated with a field.
- Removed the `empty` and `sequence` types, they are no longer needed.
- Added a way to define the application order of statuses with the `thermoo:application_order` temperature status tag.
This also removed some functionality:
- Temperature statuses can no longer be "hot reloaded"; you must restart the server to reload them.
- There is no longer a `loading_priority` field. The intended functionality behind this was to allow Thermoo Patches to override the effects from Frostiful/Scorchful with a check for Origin. This was superseded by the enable API. It is not known if anyone else used this for any particular functionality that was actually necessary, so it is being removed.
### Example migration
Old effect
```json
{
"type": "thermoo:damage",
"temperature_scale_range": {
"max": -0.99
},
"config": {
"amount": 1,
"damage_interval": 20,
"damage_type": "minecraft:freeze"
}
}
```
New status
```json
{
"temperature_scale_range": {
"max": -0.99
},
"interval": 20,
"effects": [
{
"type": "thermoo:damage",
"amount": 1,
"damage_type": "minecraft:freeze"
}
]
}
```
beta
Thermoo 10.0.0-beta.4
10.0.0-beta.426 мар. 2026 г.7,8 тыс.Minecraft: 26.1, 26.1.1, 26.1.2fabric, quilt
Что нового
# Thermoo 10.0.0 Beta 3 for Minecraft 26.1
Another beta build for Thermoo 10 for Minecraft 26.1, this time targeting the full release. While this is targeting the release version, **further breaking changes are still possible.**. Documentation has not yet been updated either, but it will be soon.
## Beta 4
* Fixed Yumi libraries not loading correctly, causing a start-up crash.
## Beta 3
* Updated to release 26.1
* Updated Polymer integration
* Breaking change: Renamed Thermoo registry classes to match Mojmap:
* `ThermooRegistries` -> `ThermooBuiltInRegistries`
* `ThermooRegistryKeys` -> `ThermooRegistries`
## Beta 2
* Replaced usage of `net.fabricmc.fabric.api.util.TriState` in the public API with `dev.yumi.commons.TriState`
* Added a new event: `TemperatureStatusEvents#ALLOW_TEMPERATURE_STATUS` that allows for finer grained control over temperature statuses than the enable/disable API.
* Added F3 debug screen entries for temperature and soaking.
* The command `/thermoo temperature status` now permits `enable` or `disable` syntax as an alternative to `set_enabled`.
* Removed previously deprecated usage of `/thermoo environment relativehumidity`, users must now use `/thermoo environment relative_humidity`.
## Beta 1
* Bumped the version of the `core` package to `v2` to align with the general vibe of changes 26.1 is introducing.
* Moved all classes previously under the `util.v1` package to the `core.v2` package.
* Renamed `TemperatureRecord#add(TemperatureRecord)` to `TemperatureRecord#shift(TemperatureRecord)`, and deprecated the `add` method.
* Added convenience methods for creating instances of `TemperatureChange` to `BuiltinTemperatureSources`.
* Replaced API exposure of Fabric API with Yumi Commons by LambdAurora.
* Replaced all usage of Fabric API event classes (`net.fabricmc.fabric.api.event.Event`) with Yumi event classes (`dev.yumi.commons.event.Event`).
* Usage of Yumi events is essentially identical to Fabric API events, but it does not tie Thermoo's API to another Minecraft mod.
* This is primarily intended to make a future non-FFAPI based Neoforge port of Thermoo possible.
* I will not be making FFAPI-free ports of Frostiful.
* Refactored the `TemperatureLootCondition` and `SoakedLootCondition` classes to no longer be records.
* Replaced the `EnvironmentProviderType` class and its usage with direct registration of `MapCodec`s.
* Established a more uniform and consistent naming scheme for the builtin implementations of `EnvironmentProvider`. Classes were renamed as follows:
* `ConstantEnvironmentProvider` -> `ConstantProvider`
* `ModifyEnvironmentProvider` -> `ModifyProvider`
* `TemperatureShiftEnvironmentProvider` -> `ShiftTemperatureProvider`
* `SetTemperatureFromPressure` -> `SetTemperatureFromPressureProvider`
* `SetPressureFromAltitude` -> `SetPressureFromAltitudeProvider`
* `TemperateSeasonEnvironmentProvider` -> `TemperateSeasonSelector`
* `TropicalSeasonEnvironmentProvider` -> `TropicalSeasonSelector`
* `LightThresholdLightProvider` -> `LightThresholdSelector`
* `WeatherStateEnvironmentProvider` -> `WeatherStateSelector`
* `BiomePrecipitationTypeEnvironmentProvider` -> `PrecipitationTypeSelector`
## Alpha 2
* Replaced `HeatingMode` with a data-driven temperature sources API ([#109](https://github.com/TheDeathlyCow/thermoo/pull/109)).
* Moved all remaining API packages to versioned packages, as follows:
* `com.github.thedeathlycow.thermoo.api.environment.*` -> `com.github.thedeathlycow.thermoo.api.environment.v2.*`
* `com.github.thedeathlycow.thermoo.api.item.*` -> `com.github.thedeathlycow.thermoo.api.item.v2.*`
* `com.github.thedeathlycow.thermoo.api.season.*` -> `com.github.thedeathlycow.thermoo.api.season.v2.*`
* `com.github.thedeathlycow.thermoo.api.util.*` -> `com.github.thedeathlycow.thermoo.api.util.v1.*` (these classes may still be split up to more specific packages)
* `com.github.thedeathlycow.thermoo.api.client.*` -> `com.github.thedeathlycow.thermoo.api.client.v1.*`
* Moved the `ThermooRegistries` and `ThermooRegistryKeys` classes to a `registry` package in the core API
* Moved the `predicate` package and `ThermooAttributes` class to a new entity API package: `com.github.thedeathlycow.thermoo.api.entity.v1`
* Split the `Item` and `EntityType` tags in `ThermooTags` into classes in the entity API (`ThermooEntityTypeTags`) and item API (`ThermooItemTags`), respectively
* Removed `ThermooTags`.
* Usage of `GuiGraphics` in `StatusBarOverlayRenderEvents` was replaced with `GuiGraphicsExtractor`
## Data-driven Temperature Sources
* Moved all classes and packages under `com.github.thedeathlycow.thermoo.api.temperature.*` EXCEPT for the `status` package to `com.github.thedeathlycow.thermoo.api.core.v2`.
* Removed the `HeatingMode` and `HeatingModes` classes.
* The method `TemperatureAware#thermoo$addTemperature(int, HeatingMode)` was converted to `TemperatureAware#thermoo$addTemperature(int, TemperatureChange)`.
* `TemperatureChange` now stores information about the context of individual temperature changes, including source, cause, direct cause, and position, and this data is now passed to various temperature change related events.
* Added a new `ThermooLevel` interface that is injected onto all `Level` instances by mixin.
* `ThermooLevel` provides access to a set of shared instances of `TemperatureChange`.
* The `ALLOW_X_UPDATE` and `ALLOW_X_CHANGE` events in `LivingEntityTemperatureTickEvents` were removed and replaced with more general events in `TemperatureChangeEvents`.
* The `GET_X_CHANGE` event in `LivingEntityTemperatureTickEvents` is now a source-key mapped event returned by `getTemperatureChange` that allows for the same sort of event to apply to any temperature source - except absolute and environment sources.
* The `/thermoo temperature (add|remove)` sub-commands now provide more ability to specify context about a temperature change with `at` and `by` syntax, essentially to provide the data for the `TemperatureChange` class.
## Alpha 1
* Begun adding version numbers to API packages.
* So far this has impacted the following packages:
* `com.github.thedeathlycow.thermoo.api.command` -> `com.github.thedeathlycow.thermoo.api.command.v1`
* `com.github.thedeathlycow.thermoo.api.temperature.effect` -> `com.github.thedeathlycow.thermoo.api.temperature.status.v2`
* More packages will be moved before the full 26.1 release.
* Removed command definition classes from API.
* These are now implementation classes.
* Renamed `*ArgumentType` classes to `*Argument` in the command API.
* Replaced the Temperature Effect API with the Temperature Status API ([#104](https://github.com/TheDeathlyCow/thermoo/pull/104)).
* Added Temperature Status Tags ([#106](https://github.com/TheDeathlyCow/thermoo/pull/106)).
### Example Migration
A simple migration of adding temperature:
```diff
void foo(LivingEntity e) {
- e.thermoo$addTemperature(10, HeatingModes.ACTIVE);
+ e.thermoo$addTemperature(10, e.level().thermoo$temperatureSources().active());
}
```
## Temperature Status API
The Temperature Effect API was rewritten and renamed to the Temperature Status API to better distinguish between the JSON files (statuses) and the effect types that actually do the work. The API largely does the same thing, but here is a summary of the changes:
- Replaced the `thermoo/temperature_effect` registry with `thermoo/temperature_status` registry
- The new status registry is now an actual registry, which supports tags, synchronisation, and `Holder`s, and all that.
- Replaced `config` objects with a direct `effects` list entry.
- Moved type delegation to entries of the effects, rather than at the root of the registry object.
- Merged the `attribute_modifier` and `scaling_attribute_modifier` into a single type, differentiated with a field.
- Removed the `empty` and `sequence` types, they are no longer needed.
- Added a way to define the application order of statuses with the `thermoo:application_order` temperature status tag.
This also removed some functionality:
- Temperature statuses can no longer be "hot reloaded"; you must restart the server to reload them.
- There is no longer a `loading_priority` field. The intended functionality behind this was to allow Thermoo Patches to override the effects from Frostiful/Scorchful with a check for Origin. This was superseded by the enable API. It is not known if anyone else used this for any particular functionality that was actually necessary, so it is being removed.
### Example migration
Old effect
```json
{
"type": "thermoo:damage",
"temperature_scale_range": {
"max": -0.99
},
"config": {
"amount": 1,
"damage_interval": 20,
"damage_type": "minecraft:freeze"
}
}
```
New status
```json
{
"temperature_scale_range": {
"max": -0.99
},
"interval": 20,
"effects": [
{
"type": "thermoo:damage",
"amount": 1,
"damage_type": "minecraft:freeze"
}
]
}
```
beta
Thermoo 10.0.0-beta.3
10.0.0-beta.326 мар. 2026 г.137Minecraft: 26.1fabric, quilt
Что нового
# Thermoo 10.0.0 Beta 3 for Minecraft 26.1
Another beta build for Thermoo 10 for Minecraft 26.1, this time targeting the full release. While this is targeting the release version, **further breaking changes are still possible.**. Documentation has not yet been updated either, but it will be soon.
## Beta 3
* Updated to release 26.1
* Updated Polymer integration
* Breaking change: Renamed Thermoo registry classes to match Mojmap:
* `ThermooRegistries` -> `ThermooBuiltInRegistries`
* `ThermooRegistryKeys` -> `ThermooRegistries`
## Beta 2
* Replaced usage of `net.fabricmc.fabric.api.util.TriState` in the public API with `dev.yumi.commons.TriState`
* Added a new event: `TemperatureStatusEvents#ALLOW_TEMPERATURE_STATUS` that allows for finer grained control over temperature statuses than the enable/disable API.
* Added F3 debug screen entries for temperature and soaking.
* The command `/thermoo temperature status` now permits `enable` or `disable` syntax as an alternative to `set_enabled`.
* Removed previously deprecated usage of `/thermoo environment relativehumidity`, users must now use `/thermoo environment relative_humidity`.
## Beta 1
* Bumped the version of the `core` package to `v2` to align with the general vibe of changes 26.1 is introducing.
* Moved all classes previously under the `util.v1` package to the `core.v2` package.
* Renamed `TemperatureRecord#add(TemperatureRecord)` to `TemperatureRecord#shift(TemperatureRecord)`, and deprecated the `add` method.
* Added convenience methods for creating instances of `TemperatureChange` to `BuiltinTemperatureSources`.
* Replaced API exposure of Fabric API with Yumi Commons by LambdAurora.
* Replaced all usage of Fabric API event classes (`net.fabricmc.fabric.api.event.Event`) with Yumi event classes (`dev.yumi.commons.event.Event`).
* Usage of Yumi events is essentially identical to Fabric API events, but it does not tie Thermoo's API to another Minecraft mod.
* This is primarily intended to make a future non-FFAPI based Neoforge port of Thermoo possible.
* I will not be making FFAPI-free ports of Frostiful.
* Refactored the `TemperatureLootCondition` and `SoakedLootCondition` classes to no longer be records.
* Replaced the `EnvironmentProviderType` class and its usage with direct registration of `MapCodec`s.
* Established a more uniform and consistent naming scheme for the builtin implementations of `EnvironmentProvider`. Classes were renamed as follows:
* `ConstantEnvironmentProvider` -> `ConstantProvider`
* `ModifyEnvironmentProvider` -> `ModifyProvider`
* `TemperatureShiftEnvironmentProvider` -> `ShiftTemperatureProvider`
* `SetTemperatureFromPressure` -> `SetTemperatureFromPressureProvider`
* `SetPressureFromAltitude` -> `SetPressureFromAltitudeProvider`
* `TemperateSeasonEnvironmentProvider` -> `TemperateSeasonSelector`
* `TropicalSeasonEnvironmentProvider` -> `TropicalSeasonSelector`
* `LightThresholdLightProvider` -> `LightThresholdSelector`
* `WeatherStateEnvironmentProvider` -> `WeatherStateSelector`
* `BiomePrecipitationTypeEnvironmentProvider` -> `PrecipitationTypeSelector`
## Alpha 2
* Replaced `HeatingMode` with a data-driven temperature sources API ([#109](https://github.com/TheDeathlyCow/thermoo/pull/109)).
* Moved all remaining API packages to versioned packages, as follows:
* `com.github.thedeathlycow.thermoo.api.environment.*` -> `com.github.thedeathlycow.thermoo.api.environment.v2.*`
* `com.github.thedeathlycow.thermoo.api.item.*` -> `com.github.thedeathlycow.thermoo.api.item.v2.*`
* `com.github.thedeathlycow.thermoo.api.season.*` -> `com.github.thedeathlycow.thermoo.api.season.v2.*`
* `com.github.thedeathlycow.thermoo.api.util.*` -> `com.github.thedeathlycow.thermoo.api.util.v1.*` (these classes may still be split up to more specific packages)
* `com.github.thedeathlycow.thermoo.api.client.*` -> `com.github.thedeathlycow.thermoo.api.client.v1.*`
* Moved the `ThermooRegistries` and `ThermooRegistryKeys` classes to a `registry` package in the core API
* Moved the `predicate` package and `ThermooAttributes` class to a new entity API package: `com.github.thedeathlycow.thermoo.api.entity.v1`
* Split the `Item` and `EntityType` tags in `ThermooTags` into classes in the entity API (`ThermooEntityTypeTags`) and item API (`ThermooItemTags`), respectively
* Removed `ThermooTags`.
* Usage of `GuiGraphics` in `StatusBarOverlayRenderEvents` was replaced with `GuiGraphicsExtractor`
## Data-driven Temperature Sources
* Moved all classes and packages under `com.github.thedeathlycow.thermoo.api.temperature.*` EXCEPT for the `status` package to `com.github.thedeathlycow.thermoo.api.core.v2`.
* Removed the `HeatingMode` and `HeatingModes` classes.
* The method `TemperatureAware#thermoo$addTemperature(int, HeatingMode)` was converted to `TemperatureAware#thermoo$addTemperature(int, TemperatureChange)`.
* `TemperatureChange` now stores information about the context of individual temperature changes, including source, cause, direct cause, and position, and this data is now passed to various temperature change related events.
* Added a new `ThermooLevel` interface that is injected onto all `Level` instances by mixin.
* `ThermooLevel` provides access to a set of shared instances of `TemperatureChange`.
* The `ALLOW_X_UPDATE` and `ALLOW_X_CHANGE` events in `LivingEntityTemperatureTickEvents` were removed and replaced with more general events in `TemperatureChangeEvents`.
* The `GET_X_CHANGE` event in `LivingEntityTemperatureTickEvents` is now a source-key mapped event returned by `getTemperatureChange` that allows for the same sort of event to apply to any temperature source - except absolute and environment sources.
* The `/thermoo temperature (add|remove)` sub-commands now provide more ability to specify context about a temperature change with `at` and `by` syntax, essentially to provide the data for the `TemperatureChange` class.
## Alpha 1
* Begun adding version numbers to API packages.
* So far this has impacted the following packages:
* `com.github.thedeathlycow.thermoo.api.command` -> `com.github.thedeathlycow.thermoo.api.command.v1`
* `com.github.thedeathlycow.thermoo.api.temperature.effect` -> `com.github.thedeathlycow.thermoo.api.temperature.status.v2`
* More packages will be moved before the full 26.1 release.
* Removed command definition classes from API.
* These are now implementation classes.
* Renamed `*ArgumentType` classes to `*Argument` in the command API.
* Replaced the Temperature Effect API with the Temperature Status API ([#104](https://github.com/TheDeathlyCow/thermoo/pull/104)).
* Added Temperature Status Tags ([#106](https://github.com/TheDeathlyCow/thermoo/pull/106)).
### Example Migration
A simple migration of adding temperature:
```diff
void foo(LivingEntity e) {
- e.thermoo$addTemperature(10, HeatingModes.ACTIVE);
+ e.thermoo$addTemperature(10, e.level().thermoo$temperatureSources().active());
}
```
## Temperature Status API
The Temperature Effect API was rewritten and renamed to the Temperature Status API to better distinguish between the JSON files (statuses) and the effect types that actually do the work. The API largely does the same thing, but here is a summary of the changes:
- Replaced the `thermoo/temperature_effect` registry with `thermoo/temperature_status` registry
- The new status registry is now an actual registry, which supports tags, synchronisation, and `Holder`s, and all that.
- Replaced `config` objects with a direct `effects` list entry.
- Moved type delegation to entries of the effects, rather than at the root of the registry object.
- Merged the `attribute_modifier` and `scaling_attribute_modifier` into a single type, differentiated with a field.
- Removed the `empty` and `sequence` types, they are no longer needed.
- Added a way to define the application order of statuses with the `thermoo:application_order` temperature status tag.
This also removed some functionality:
- Temperature statuses can no longer be "hot reloaded"; you must restart the server to reload them.
- There is no longer a `loading_priority` field. The intended functionality behind this was to allow Thermoo Patches to override the effects from Frostiful/Scorchful with a check for Origin. This was superseded by the enable API. It is not known if anyone else used this for any particular functionality that was actually necessary, so it is being removed.
### Example migration
Old effect
```json
{
"type": "thermoo:damage",
"temperature_scale_range": {
"max": -0.99
},
"config": {
"amount": 1,
"damage_interval": 20,
"damage_type": "minecraft:freeze"
}
}
```
New status
```json
{
"temperature_scale_range": {
"max": -0.99
},
"interval": 20,
"effects": [
{
"type": "thermoo:damage",
"amount": 1,
"damage_type": "minecraft:freeze"
}
]
}
```
beta
Thermoo 10.0.0-beta.2
10.0.0-beta.220 мар. 2026 г.103Minecraft: 26.1-rc-1fabric, quilt
Что нового
# Thermoo 10.0.0 Beta 1 for Minecraft 26.1-pre-2
A beta build for Thermoo 10 for Minecraft 26.1. At this time, I have implemented all the features I plan to release for 26.1. However, **further breaking changes are still possible.** Because of this, **the documentation has also not yet been updated!** The Thermoo Docs will be fully updated when the API changes are finalized for 26.1.
## Beta 2
* Replaced usage of `net.fabricmc.fabric.api.util.TriState` in the public API with `dev.yumi.commons.TriState`
* Added a new event: `TemperatureStatusEvents#ALLOW_TEMPERATURE_STATUS` that allows for finer grained control over temperature statuses than the enable/disable API.
* Added F3 debug screen entries for temperature and soaking.
* The command `/thermoo temperature status` now permits `enable` or `disable` syntax as an alternative to `set_enabled`.
* Removed previously deprecated usage of `/thermoo environment relativehumidity`, users must now use `/thermoo environment relative_humidity`.
## Beta 1
* Bumped the version of the `core` package to `v2` to align with the general vibe of changes 26.1 is introducing.
* Moved all classes previously under the `util.v1` package to the `core.v2` package.
* Renamed `TemperatureRecord#add(TemperatureRecord)` to `TemperatureRecord#shift(TemperatureRecord)`, and deprecated the `add` method.
* Added convenience methods for creating instances of `TemperatureChange` to `BuiltinTemperatureSources`.
* Replaced API exposure of Fabric API with Yumi Commons by LambdAurora.
* Replaced all usage of Fabric API event classes (`net.fabricmc.fabric.api.event.Event`) with Yumi event classes (`dev.yumi.commons.event.Event`).
* Usage of Yumi events is essentially identical to Fabric API events, but it does not tie Thermoo's API to another Minecraft mod.
* This is primarily intended to make a future non-FFAPI based Neoforge port of Thermoo possible.
* I will not be making FFAPI-free ports of Frostiful.
* Refactored the `TemperatureLootCondition` and `SoakedLootCondition` classes to no longer be records.
* Replaced the `EnvironmentProviderType` class and its usage with direct registration of `MapCodec`s.
* Established a more uniform and consistent naming scheme for the builtin implementations of `EnvironmentProvider`. Classes were renamed as follows:
* `ConstantEnvironmentProvider` -> `ConstantProvider`
* `ModifyEnvironmentProvider` -> `ModifyProvider`
* `TemperatureShiftEnvironmentProvider` -> `ShiftTemperatureProvider`
* `SetTemperatureFromPressure` -> `SetTemperatureFromPressureProvider`
* `SetPressureFromAltitude` -> `SetPressureFromAltitudeProvider`
* `TemperateSeasonEnvironmentProvider` -> `TemperateSeasonSelector`
* `TropicalSeasonEnvironmentProvider` -> `TropicalSeasonSelector`
* `LightThresholdLightProvider` -> `LightThresholdSelector`
* `WeatherStateEnvironmentProvider` -> `WeatherStateSelector`
* `BiomePrecipitationTypeEnvironmentProvider` -> `PrecipitationTypeSelector`
## Alpha 2
* Replaced `HeatingMode` with a data-driven temperature sources API ([#109](https://github.com/TheDeathlyCow/thermoo/pull/109)).
* Moved all remaining API packages to versioned packages, as follows:
* `com.github.thedeathlycow.thermoo.api.environment.*` -> `com.github.thedeathlycow.thermoo.api.environment.v2.*`
* `com.github.thedeathlycow.thermoo.api.item.*` -> `com.github.thedeathlycow.thermoo.api.item.v2.*`
* `com.github.thedeathlycow.thermoo.api.season.*` -> `com.github.thedeathlycow.thermoo.api.season.v2.*`
* `com.github.thedeathlycow.thermoo.api.util.*` -> `com.github.thedeathlycow.thermoo.api.util.v1.*` (these classes may still be split up to more specific packages)
* `com.github.thedeathlycow.thermoo.api.client.*` -> `com.github.thedeathlycow.thermoo.api.client.v1.*`
* Moved the `ThermooRegistries` and `ThermooRegistryKeys` classes to a `registry` package in the core API
* Moved the `predicate` package and `ThermooAttributes` class to a new entity API package: `com.github.thedeathlycow.thermoo.api.entity.v1`
* Split the `Item` and `EntityType` tags in `ThermooTags` into classes in the entity API (`ThermooEntityTypeTags`) and item API (`ThermooItemTags`), respectively
* Removed `ThermooTags`.
* Usage of `GuiGraphics` in `StatusBarOverlayRenderEvents` was replaced with `GuiGraphicsExtractor`
## Data-driven Temperature Sources
* Moved all classes and packages under `com.github.thedeathlycow.thermoo.api.temperature.*` EXCEPT for the `status` package to `com.github.thedeathlycow.thermoo.api.core.v2`.
* Removed the `HeatingMode` and `HeatingModes` classes.
* The method `TemperatureAware#thermoo$addTemperature(int, HeatingMode)` was converted to `TemperatureAware#thermoo$addTemperature(int, TemperatureChange)`.
* `TemperatureChange` now stores information about the context of individual temperature changes, including source, cause, direct cause, and position, and this data is now passed to various temperature change related events.
* Added a new `ThermooLevel` interface that is injected onto all `Level` instances by mixin.
* `ThermooLevel` provides access to a set of shared instances of `TemperatureChange`.
* The `ALLOW_X_UPDATE` and `ALLOW_X_CHANGE` events in `LivingEntityTemperatureTickEvents` were removed and replaced with more general events in `TemperatureChangeEvents`.
* The `GET_X_CHANGE` event in `LivingEntityTemperatureTickEvents` is now a source-key mapped event returned by `getTemperatureChange` that allows for the same sort of event to apply to any temperature source - except absolute and environment sources.
* The `/thermoo temperature (add|remove)` sub-commands now provide more ability to specify context about a temperature change with `at` and `by` syntax, essentially to provide the data for the `TemperatureChange` class.
## Alpha 1
* Begun adding version numbers to API packages.
* So far this has impacted the following packages:
* `com.github.thedeathlycow.thermoo.api.command` -> `com.github.thedeathlycow.thermoo.api.command.v1`
* `com.github.thedeathlycow.thermoo.api.temperature.effect` -> `com.github.thedeathlycow.thermoo.api.temperature.status.v2`
* More packages will be moved before the full 26.1 release.
* Removed command definition classes from API.
* These are now implementation classes.
* Renamed `*ArgumentType` classes to `*Argument` in the command API.
* Replaced the Temperature Effect API with the Temperature Status API ([#104](https://github.com/TheDeathlyCow/thermoo/pull/104)).
* Added Temperature Status Tags ([#106](https://github.com/TheDeathlyCow/thermoo/pull/106)).
### Example Migration
A simple migration of adding temperature:
```diff
void foo(LivingEntity e) {
- e.thermoo$addTemperature(10, HeatingModes.ACTIVE);
+ e.thermoo$addTemperature(10, e.level().thermoo$temperatureSources().active());
}
```
## Temperature Status API
The Temperature Effect API was rewritten and renamed to the Temperature Status API to better distinguish between the JSON files (statuses) and the effect types that actually do the work. The API largely does the same thing, but here is a summary of the changes:
- Replaced the `thermoo/temperature_effect` registry with `thermoo/temperature_status` registry
- The new status registry is now an actual registry, which supports tags, synchronisation, and `Holder`s, and all that.
- Replaced `config` objects with a direct `effects` list entry.
- Moved type delegation to entries of the effects, rather than at the root of the registry object.
- Merged the `attribute_modifier` and `scaling_attribute_modifier` into a single type, differentiated with a field.
- Removed the `empty` and `sequence` types, they are no longer needed.
- Added a way to define the application order of statuses with the `thermoo:application_order` temperature status tag.
This also removed some functionality:
- Temperature statuses can no longer be "hot reloaded"; you must restart the server to reload them.
- There is no longer a `loading_priority` field. The intended functionality behind this was to allow Thermoo Patches to override the effects from Frostiful/Scorchful with a check for Origin. This was superseded by the enable API. It is not known if anyone else used this for any particular functionality that was actually necessary, so it is being removed.
### Example migration
Old effect
```json
{
"type": "thermoo:damage",
"temperature_scale_range": {
"max": -0.99
},
"config": {
"amount": 1,
"damage_interval": 20,
"damage_type": "minecraft:freeze"
}
}
```
New status
```json
{
"temperature_scale_range": {
"max": -0.99
},
"interval": 20,
"effects": [
{
"type": "thermoo:damage",
"amount": 1,
"damage_type": "minecraft:freeze"
}
]
}
```
beta
Thermoo 10.0.0-beta.1
10.0.0-beta.119 мар. 2026 г.95Minecraft: 26.1-pre-2fabric, quilt
Что нового
# Thermoo 10.0.0 Beta 1 for Minecraft 26.1-pre-2
A beta build for Thermoo 10 for Minecraft 26.1. At this time, I have implemented all the features I plan to release for 26.1. However, **further breaking changes are still possible.** Because of this, **the documentation has also not yet been updated!** The Thermoo Docs will be fully updated when the API changes are finalized for 26.1.
## Beta 1
* Bumped the version of the `core` package to `v2` to align with the general vibe of changes 26.1 is introducing.
* Moved all classes previously under the `util.v1` package to the `core.v2` package.
* Renamed `TemperatureRecord#add(TemperatureRecord)` to `TemperatureRecord#shift(TemperatureRecord)`, and deprecated the `add` method.
* Added convenience methods for creating instances of `TemperatureChange` to `BuiltinTemperatureSources`.
* Replaced API exposure of Fabric API with Yumi Commons by LambdAurora.
* Replaced all usage of Fabric API event classes (`net.fabricmc.fabric.api.event.Event`) with Yumi event classes (`dev.yumi.commons.event.Event`).
* Usage of Yumi events is essentially identical to Fabric API events, but it does not tie Thermoo's API to another Minecraft mod.
* This is primarily intended to make a future non-FFAPI based Neoforge port of Thermoo possible.
* I will not be making FFAPI-free ports of Frostiful.
* Refactored the `TemperatureLootCondition` and `SoakedLootCondition` classes to no longer be records.
* Replaced the `EnvironmentProviderType` class and its usage with direct registration of `MapCodec`s.
* Established a more uniform and consistent naming scheme for the builtin implementations of `EnvironmentProvider`. Classes were renamed as follows:
* `ConstantEnvironmentProvider` -> `ConstantProvider`
* `ModifyEnvironmentProvider` -> `ModifyProvider`
* `TemperatureShiftEnvironmentProvider` -> `ShiftTemperatureProvider`
* `SetTemperatureFromPressure` -> `SetTemperatureFromPressureProvider`
* `SetPressureFromAltitude` -> `SetPressureFromAltitudeProvider`
* `TemperateSeasonEnvironmentProvider` -> `TemperateSeasonSelector`
* `TropicalSeasonEnvironmentProvider` -> `TropicalSeasonSelector`
* `LightThresholdLightProvider` -> `LightThresholdSelector`
* `WeatherStateEnvironmentProvider` -> `WeatherStateSelector`
* `BiomePrecipitationTypeEnvironmentProvider` -> `PrecipitationTypeSelector`
## Alpha 2
* Replaced `HeatingMode` with a data-driven temperature sources API ([#109](https://github.com/TheDeathlyCow/thermoo/pull/109)).
* Moved all remaining API packages to versioned packages, as follows:
* `com.github.thedeathlycow.thermoo.api.environment.*` -> `com.github.thedeathlycow.thermoo.api.environment.v2.*`
* `com.github.thedeathlycow.thermoo.api.item.*` -> `com.github.thedeathlycow.thermoo.api.item.v2.*`
* `com.github.thedeathlycow.thermoo.api.season.*` -> `com.github.thedeathlycow.thermoo.api.season.v2.*`
* `com.github.thedeathlycow.thermoo.api.util.*` -> `com.github.thedeathlycow.thermoo.api.util.v1.*` (these classes may still be split up to more specific packages)
* `com.github.thedeathlycow.thermoo.api.client.*` -> `com.github.thedeathlycow.thermoo.api.client.v1.*`
* Moved the `ThermooRegistries` and `ThermooRegistryKeys` classes to a `registry` package in the core API
* Moved the `predicate` package and `ThermooAttributes` class to a new entity API package: `com.github.thedeathlycow.thermoo.api.entity.v1`
* Split the `Item` and `EntityType` tags in `ThermooTags` into classes in the entity API (`ThermooEntityTypeTags`) and item API (`ThermooItemTags`), respectively
* Removed `ThermooTags`.
* Usage of `GuiGraphics` in `StatusBarOverlayRenderEvents` was replaced with `GuiGraphicsExtractor`
## Data-driven Temperature Sources
* Moved all classes and packages under `com.github.thedeathlycow.thermoo.api.temperature.*` EXCEPT for the `status` package to `com.github.thedeathlycow.thermoo.api.core.v2`.
* Removed the `HeatingMode` and `HeatingModes` classes.
* The method `TemperatureAware#thermoo$addTemperature(int, HeatingMode)` was converted to `TemperatureAware#thermoo$addTemperature(int, TemperatureChange)`.
* `TemperatureChange` now stores information about the context of individual temperature changes, including source, cause, direct cause, and position, and this data is now passed to various temperature change related events.
* Added a new `ThermooLevel` interface that is injected onto all `Level` instances by mixin.
* `ThermooLevel` provides access to a set of shared instances of `TemperatureChange`.
* The `ALLOW_X_UPDATE` and `ALLOW_X_CHANGE` events in `LivingEntityTemperatureTickEvents` were removed and replaced with more general events in `TemperatureChangeEvents`.
* The `GET_X_CHANGE` event in `LivingEntityTemperatureTickEvents` is now a source-key mapped event returned by `getTemperatureChange` that allows for the same sort of event to apply to any temperature source - except absolute and environment sources.
* The `/thermoo temperature (add|remove)` sub-commands now provide more ability to specify context about a temperature change with `at` and `by` syntax, essentially to provide the data for the `TemperatureChange` class.
## Alpha 1
* Begun adding version numbers to API packages.
* So far this has impacted the following packages:
* `com.github.thedeathlycow.thermoo.api.command` -> `com.github.thedeathlycow.thermoo.api.command.v1`
* `com.github.thedeathlycow.thermoo.api.temperature.effect` -> `com.github.thedeathlycow.thermoo.api.temperature.status.v2`
* More packages will be moved before the full 26.1 release.
* Removed command definition classes from API.
* These are now implementation classes.
* Renamed `*ArgumentType` classes to `*Argument` in the command API.
* Replaced the Temperature Effect API with the Temperature Status API ([#104](https://github.com/TheDeathlyCow/thermoo/pull/104)).
* Added Temperature Status Tags ([#106](https://github.com/TheDeathlyCow/thermoo/pull/106)).
### Example Migration
A simple migration of adding temperature:
```diff
void foo(LivingEntity e) {
- e.thermoo$addTemperature(10, HeatingModes.ACTIVE);
+ e.thermoo$addTemperature(10, e.level().thermoo$temperatureSources().active());
}
```
## Temperature Status API
The Temperature Effect API was rewritten and renamed to the Temperature Status API to better distinguish between the JSON files (statuses) and the effect types that actually do the work. The API largely does the same thing, but here is a summary of the changes:
- Replaced the `thermoo/temperature_effect` registry with `thermoo/temperature_status` registry
- The new status registry is now an actual registry, which supports tags, synchronisation, and `Holder`s, and all that.
- Replaced `config` objects with a direct `effects` list entry.
- Moved type delegation to entries of the effects, rather than at the root of the registry object.
- Merged the `attribute_modifier` and `scaling_attribute_modifier` into a single type, differentiated with a field.
- Removed the `empty` and `sequence` types, they are no longer needed.
- Added a way to define the application order of statuses with the `thermoo:application_order` temperature status tag.
This also removed some functionality:
- Temperature statuses can no longer be "hot reloaded"; you must restart the server to reload them.
- There is no longer a `loading_priority` field. The intended functionality behind this was to allow Thermoo Patches to override the effects from Frostiful/Scorchful with a check for Origin. This was superseded by the enable API. It is not known if anyone else used this for any particular functionality that was actually necessary, so it is being removed.
### Example migration
Old effect
```json
{
"type": "thermoo:damage",
"temperature_scale_range": {
"max": -0.99
},
"config": {
"amount": 1,
"damage_interval": 20,
"damage_type": "minecraft:freeze"
}
}
```
New status
```json
{
"temperature_scale_range": {
"max": -0.99
},
"interval": 20,
"effects": [
{
"type": "thermoo:damage",
"amount": 1,
"damage_type": "minecraft:freeze"
}
]
}
```
alpha
Thermoo 10.0.0-alpha.2
10.0.0-alpha.217 мар. 2026 г.68Minecraft: 26.1-pre-2fabric, quilt
Что нового
# Thermoo 10.0.0 Alpha 2 for Minecraft 26.1-snapshot-11
A second pre-release build for Thermoo 10 for Minecraft 26.1. This is an alpha version, and the API remains extremely unstable as **further breaking changes are planned.** Because of this, **the documentation has also not yet been updated!** The Thermoo Docs will be fully updated when the API changes are finalized for 26.1.
This release is primarily intended for me to get a head start on updating Frostiful and Scorchful, and also to open Thermoo up to public bugtesting from whomever wants to do that.
## Alpha 1
* Begun adding version numbers to API packages.
* So far this has impacted the following packages:
* `com.github.thedeathlycow.thermoo.api.command` -> `com.github.thedeathlycow.thermoo.api.command.v1`
* `com.github.thedeathlycow.thermoo.api.temperature.effect` -> `com.github.thedeathlycow.thermoo.api.temperature.status.v2`
* More packages will be moved before the full 26.1 release.
* Removed command definition classes from API.
* These are now implementation classes.
* Renamed `*ArgumentType` classes to `*Argument` in the command API.
* Replaced the Temperature Effect API with the Temperature Status API ([#104](https://github.com/TheDeathlyCow/thermoo/pull/104)).
* Added Temperature Status Tags ([#106](https://github.com/TheDeathlyCow/thermoo/pull/106)).
## Alpha 2
* Replaced `HeatingMode` with a data-driven temperature sources API ([#109](https://github.com/TheDeathlyCow/thermoo/pull/109)).
* Moved all remaining API packages to versioned packages, as follows:
* `com.github.thedeathlycow.thermoo.api.environment.*` -> `com.github.thedeathlycow.thermoo.api.environment.v2.*`
* `com.github.thedeathlycow.thermoo.api.item.*` -> `com.github.thedeathlycow.thermoo.api.item.v2.*`
* `com.github.thedeathlycow.thermoo.api.season.*` -> `com.github.thedeathlycow.thermoo.api.season.v2.*`
* `com.github.thedeathlycow.thermoo.api.util.*` -> `com.github.thedeathlycow.thermoo.api.util.v1.*` (these classes may still be split up to more specific packages)
* `com.github.thedeathlycow.thermoo.api.client.*` -> `com.github.thedeathlycow.thermoo.api.client.v1.*`
* Moved the `ThermooRegistries` and `ThermooRegistryKeys` classes to a `registry` package in the core API
* Moved the `predicate` package and `ThermooAttributes` class to a new entity API package: `com.github.thedeathlycow.thermoo.api.entity.v1`
* Split the `Item` and `EntityType` tags in `ThermooTags` into classes in the entity API (`ThermooEntityTypeTags`) and item API (`ThermooItemTags`), respectively
* Removed `ThermooTags`.
* Usage of `GuiGraphics` in `StatusBarOverlayRenderEvents` was replaced with `GuiGraphicsExtractor`
## Data-driven Temperature Sources
* Moved all classes and packages under `com.github.thedeathlycow.thermoo.api.temperature.*` EXCEPT for the `status` package to `com.github.thedeathlycow.thermoo.api.core.v1`.
* Removed the `HeatingMode` and `HeatingModes` classes.
* The method `TemperatureAware#thermoo$addTemperature(int, HeatingMode)` was converted to `TemperatureAware#thermoo$addTemperature(int, TemperatureChange)`.
* `TemperatureChange` now stores information about the context of individual temperature changes, including source, cause, direct cause, and position, and this data is now passed to various temperature change related events.
* Added a new `ThermooLevel` interface that is injected onto all `Level` instances by mixin.
* `ThermooLevel` provides access to a set of shared instances of `TemperatureChange`.
* The `ALLOW_X_UPDATE` and `ALLOW_X_CHANGE` events in `LivingEntityTemperatureTickEvents` were removed and replaced with more general events in `TemperatureChangeEvents`.
* The `GET_X_CHANGE` event in `LivingEntityTemperatureTickEvents` is now a source-key mapped event returned by `getTemperatureChange` that allows for the same sort of event to apply to any temperature source - except absolute and environment sources.
* The `/thermoo temperature (add|remove)` sub-commands now provide more ability to specify context about a temperature change with `at` and `by` syntax, essentially to provide the data for the `TemperatureChange` class.
### Example Migration
A simple migration of adding temperature:
```diff
void foo(LivingEntity e) {
- e.thermoo$addTemperature(10, HeatingModes.ACTIVE);
+ e.thermoo$addTemperature(10, e.level().thermoo$temperatureSources().active());
}
```
## Temperature Status API
The Temperature Effect API was rewritten and renamed to the Temperature Status API to better distinguish between the JSON files (statuses) and the effect types that actually do the work. The API largely does the same thing, but here is a summary of the changes:
- Replaced the `thermoo/temperature_effect` registry with `thermoo/temperature_status` registry
- The new status registry is now an actual registry, which supports tags, synchronisation, and `Holder`s, and all that.
- Replaced `config` objects with a direct `effects` list entry.
- Moved type delegation to entries of the effects, rather than at the root of the registry object.
- Merged the `attribute_modifier` and `scaling_attribute_modifier` into a single type, differentiated with a field.
- Removed the `empty` and `sequence` types, they are no longer needed.
- Added a way to define the application order of statuses with the `thermoo:application_order` temperature status tag.
This also removed some functionality:
- Temperature statuses can no longer be "hot reloaded"; you must restart the server to reload them.
- There is no longer a `loading_priority` field. The intended functionality behind this was to allow Thermoo Patches to override the effects from Frostiful/Scorchful with a check for Origin. This was superseded by the enable API. It is not known if anyone else used this for any particular functionality that was actually necessary, so it is being removed.
### Example migration
Old effect
```json
{
"type": "thermoo:damage",
"temperature_scale_range": {
"max": -0.99
},
"config": {
"amount": 1,
"damage_interval": 20,
"damage_type": "minecraft:freeze"
}
}
```
New status
```json
{
"temperature_scale_range": {
"max": -0.99
},
"interval": 20,
"effects": [
{
"type": "thermoo:damage",
"amount": 1,
"damage_type": "minecraft:freeze"
}
]
}
```
alpha
Thermoo Neoforge 4.8.1-neoforge
4.8.1-neoforge9 мар. 2026 г.13,8 тыс.Minecraft: 1.21.1neoforge
Что нового
# Thermoo 4.8.1 for Minecraft 1.21.1
* Added ability to dynamically toggle temperature effects on and off on a per-entity basis using the command `/thermoo temperature effect set_enabled.`
* Fixed some temperature effects not being properly removed.
* Hotfix 4.8.1: publish interface injection data as a classified artifact
alpha
Thermoo Neoforge 4.8.0-neoforge
4.8.0-neoforge9 мар. 2026 г.108Minecraft: 1.21.1neoforge
Что нового
# Thermoo 4.8.0 for Minecraft 1.21.1
* Added ability to dynamically toggle temperature effects on and off on a per-entity basis using the command `/thermoo temperature effect set_enabled.`
* Fixed some temperature effects not being properly removed.
alpha
Thermoo 10.0.0-alpha.1
10.0.0-alpha.16 мар. 2026 г.109Minecraft: 26.1-snapshot-11fabric, quilt
Что нового
# Thermoo 10.0.0 Alpha 1 for Minecraft 26.1-snapshot-11
A first pre-release build for Thermoo 10 for Minecraft 26.1. This is an alpha version, and the API remains extremely unstable as **further breaking changes are planned.** Because of this, **the documentation has also not yet been updated!** The Thermoo Docs will be fully updated when the API changes are finalized for 26.1.
This release is primarily intended for me to get a head start on updating Frostiful and Scorchful, and also to open Thermoo up to public bugtesting from whomever wants to do that.
* Begun adding version numbers to API packages.
* So far this has impacted the following packages:
* `com.github.thedeathlycow.thermoo.api.command` -> `com.github.thedeathlycow.thermoo.api.command.v1`
* `com.github.thedeathlycow.thermoo.api.temperature.effect` -> `com.github.thedeathlycow.thermoo.api.temperature.status.v2`
* More packages will be moved before the full 26.1 release.
* Removed command definition classes from API.
* These are now implementation classes.
* Renamed `*ArgumentType` classes to `*Argument` in the command API.
* Replaced the Temperature Effect API with the Temperature Status API ([#104](https://github.com/TheDeathlyCow/thermoo/pull/104)).
* Added Temperature Status Tags ([#106](https://github.com/TheDeathlyCow/thermoo/pull/106)).
## Temperature Status API
The Temperature Effect API was rewritten and renamed to the Temperature Status API to better distinguish between the JSON files (statuses) and the effect types that actually do the work. The API largely does the same thing, but here is a summary of the changes:
- Replaced the `thermoo/temperature_effect` registry with `thermoo/temperature_status` registry
- The new status registry is now an actual registry, which supports tags, synchronisation, and `Holder`s, and all that.
- Replaced `config` objects with a direct `effects` list entry.
- Moved type delegation to entries of the effects, rather than at the root of the registry object.
- Merged the `attribute_modifier` and `scaling_attribute_modifier` into a single type, differentiated with a field.
- Removed the `empty` and `sequence` types, they are no longer needed.
- Added a way to define the application order of statuses with the `thermoo:application_order` temperature status tag.
This also removed some functionality:
- Temperature statuses can no longer be "hot reloaded"; you must restart the server to reload them.
- There is no longer a `loading_priority` field. The intended functionality behind this was to allow Thermoo Patches to override the effects from Frostiful/Scorchful with a check for Origin. This was superseded by the enable API. It is not known if anyone else used this for any particular functionality that was actually necessary, so it is being removed.
### Example migration
Old effect
```json
{
"type": "thermoo:damage",
"temperature_scale_range": {
"max": -0.99
},
"config": {
"amount": 1,
"damage_interval": 20,
"damage_type": "minecraft:freeze"
}
}
```
New status
```json
{
"temperature_scale_range": {
"max": -0.99
},
"interval": 20,
"effects": [
{
"type": "thermoo:damage",
"amount": 1,
"damage_type": "minecraft:freeze"
}
]
}
```
release
Thermoo 4.8.0
4.8.03 мар. 2026 г.24,8 тыс.Minecraft: 1.21.1fabric, quilt
Что нового
# Thermoo 4.8.0 for Minecraft 1.21.1
* Added ability to dynamically toggle temperature effects on and off on a per-entity basis using the command `/thermoo temperature effect set_enabled.`
* Fixed some temperature effects not being properly removed.
release
Thermoo 9.1.0
9.1.021 февр. 2026 г.21,7 тыс.Minecraft: 1.21.11fabric, quilt
Что нового
# Thermoo 9.1: Atmospheric Pressure
- Added ability to dynamically toggle temperature effects on and off on a per-entity basis using the command `/thermoo temperature effect set_enabled`.
- Added a Java API to dynamically toggle temperature effects on and off on a per-entity basis to the `ConfiguredTemperatureEffect` class.
- Added Thermoo specific entries to the F3 debug screen, these are disabled by default.
- Added an atmospheric pressure environment component type.
- This component stores the local atmospheric pressure in millibars.
- Added an atmospheric pressure gameplay environment attribute.
- This attribute is used as the default value for the environment component map.
- Added a sub-command to `/thermoo environment` to get the atmospheric pressure value at a block position.
- Added `thermoo:set_temperature_from_pressure` environment provider type.
- Added `thermoo:set_pressure_from_altitude` environment provider type.
- The relative humidity can now be queried using `/thermoo environment relative_humidity`.
- The old usage of `/thermoo environment relativehumidity` still works but is now deprecated.
alpha
Thermoo Neoforge 4.7.1+neoforge
4.7.1+neoforge22 дек. 2025 г.686Minecraft: 1.21.1neoforge
Что нового
# Thermoo for Neoforge 1.21.1
Thermoo has now been ported to Neoforge 1.21.1, courtesy
of [Forgified Fabric API](https://github.com/Sinytra/ForgifiedFabricAPI). This port may not be fully stable just yet and
as such is released as an Alpha. However, it does _not_ require Connector and as such should work a bit better.
Server owners should note that this port does not include the Polymer patch, as Polymer is a Fabric-only mod. If you
want to use Thermoo server side with Polymer, you will still need to use the Fabric version of Thermoo via Connector.
**I do not plan to update this port to any game version other than 1.21.1.** FFAPI is currently not available for any
later version, and I am just simply uninterested in 1.20.1 (not to mention that I would also need to translate Thermoo
1.20.1 to Mojmap). If/when FFAPI updates to a newer Minecraft version, I will remake the port for that version too.
Changes from Thermoo 4.7.0+neoforge:
* 4.7.1: Published interface injection data
alpha
Thermoo Neoforge 4.7.0+neoforge
4.7.0+neoforge22 дек. 2025 г.132Minecraft: 1.21.1neoforge
Что нового
# Thermoo for Neoforge 1.21.1
Thermoo has now been ported to Neoforge 1.21.1, courtesy
of [Forgified Fabric API](https://github.com/Sinytra/ForgifiedFabricAPI). This port may not be fully stable just yet and
as such is released as an Alpha. However, it does _not_ require Connector and as such should work a bit better.
Server owners should note that this port does not include the Polymer patch, as Polymer is a Fabric-only mod. If you
want to use Thermoo server side with Polymer, you will still need to use the Fabric version of Thermoo via Connector.
**I do not plan to update this port to any game version other than 1.21.1.** FFAPI is currently not available for any
later version, and I am just simply uninterested in 1.20.1 (not to mention that I would also need to translate Thermoo
1.20.1 to Mojmap). If/when FFAPI updates to a newer Minecraft version, I will remake the port for that version too.
release
Thermoo 9.0.0
9.0.019 дек. 2025 г.8,3 тыс.Minecraft: 1.21.11fabric, quilt
Что нового
# Thermoo 9.0.0
This update brings Thermoo to Minecraft 1.21.11. Per the LTS policy, this release marks the end of support for Minecraft
1.21.9-10.
* Updated to Minecraft 1.21.11.
* Added new Environment Attributes to control seasons and temperature.
* Reworked the seasons API to better support the environment attribute integration. This is a major breaking change for
anyone using the Java-side Seasons API. See below for details. The JSON API should remain exactly the same.
* Added a new `mild` tropical season.
## Environment Attributes
Thermoo now provides several new environment attributes that integrate this new vanilla system with seasons and
temperature. These new attributes are documented on
the [Thermoo wiki](https://thermoo.thedeathlycow.com/datapacks/environment_attributes/).
## Seasons API Rework
The Seasons API has been reworked with, broadly, two major changes to support better future extensibility: First, the
`ThermooSeason` enum was converted into an interface which is implemented by two separate enums for temperate and
tropical seasons, called `TemperateSeason` and `TropicalSeason` respectively. A `mild` tropical season was also added
with this change to represent transition periods from wet to dry.
Secondly, the type returned by the seasons events was changed from an optional season to an optional season _state_,
which includes not only the original season but also a new `progress` value. This captures the "state" of a season at
some particular point in time. The new progress value is a number in the range [0, 1] which represents how far the
season has progressed.
Here is a basic migration overview:
* `ThermooSeason.SPRING` -> `TemperateSeason.SPRING`
* `ThermooSeason.AUTUMN` -> `TemperateSeason.AUTUMN`
* `ThermooSeason.SUMMER` -> `TemperateSeason.SUMMER`
* `ThermooSeason.WINTER` -> `TemperateSeason.WINTER`
* `ThermooSeason.TROPICAL_DRY` -> `TropicalSeason.DRY`
* `ThermooSeason.TROPICAL_WET` -> `TropicalSeason.WET`
* Added `TropicalSeason.MILD`
* `ThermooSeason#getCurrentSeason(Level)` -> `TemperateSeason#getCurrentState(Level, BlockPos)` (note the added `BlockPos` parameter)
* `ThermooSeason#getCurrentTropicalSeason(Level, BlockPos)` -> `TropicalSeason#getCurrentState(Level, BlockPos).map()`
Examples:
```diff
-Optional<ThermooSeason> season = ThermooSeason#getCurrentSeason(level);
+Optional<TemperateSeason> season = TemperateSeason#getCurrentState(level, pos).map(ThermooSeasonState::season);
```
```diff
ThermooSeasonEvents.GET_CURRENT_TROPICAL_SEASON.register(
(level, pos) -> {
- return Optional.of(ThermooSeason.TROPICAL_WET);
+ return Optional.of(TropicalSeason.WET.createState());
}
);
```
beta
Thermoo 8.1.1
8.1.122 нояб. 2025 г.6,5 тыс.Minecraft: 1.21.9, 1.21.10fabric, quilt
Что нового
* The entity position chosen for the environment tick context is now based on the entity's root vehicle, and not their actual position.
* This fixes some downstream issues with Frostiful where players would not warm up when in a boat. See [#90](https://github.com/TheDeathlyCow/thermoo/issues/90).
beta
Thermoo 4.7.1
4.7.122 нояб. 2025 г.17,7 тыс.Minecraft: 1.21.1fabric, quilt
Что нового
* The entity position chosen for the environment tick context is now based on the entity's root vehicle, and not their actual position.
* This fixes some downstream issues with Frostiful where players would not warm up when in a boat. See [#90](https://github.com/TheDeathlyCow/thermoo/issues/90).
beta
Thermoo 4.7.0
4.7.05 нояб. 2025 г.42,6 тыс.Minecraft: 1.21.1fabric, quilt
Что нового
# Migration to Mojang Mappings
*This is a backport of Thermoo 8.1.0 for Minecraft 1.21.10*
Based Mojang's move towards removing obfuscation, and anticipating Fabric's move to MojMap, I have remapped Thermoo to MojMap. This was a big change code-side for Thermoo but, thanks to intermediary, this should not constitute any breaking changes to the public API. However, I may have messed something up, so this version will initially be released as a beta.
While no breaking changes are planned to be made at this time, a few fields and methods have been renamed to better conform to Official Mappings standards. These are as follows:
- `EnvironmentProvider.ENTRY_CODEC` -> `EnvironmentProvider.HOLDER_CODEC`
- `LightThresholdLightProvider#lightType` -> `LightThresholdLightProvider#lightLayer`
- `AttributeModifierTemperatureEffect$Config#id` -> `AttributeModifierTemperatureEffect$Config#location`
- `ScalingAttributeModifierTemperatureEffect$Config#id` -> `ScalingAttributeModifierTemperatureEffect$Config#location`
- `EnvironmentTickContext#world` -> `EnvironmentTickContext#level`
- `TemperatureEffects.STATUS_EFFECT` -> `TemperatureEffects.MOB_EFFECT`
The resource location of the temperature effect type `thermoo:status_effect` was changed to `thermoo:mob_effect`, however an alias has been added to allow existing datapacks to continue to work.
All old fields and methods have been deprecated and just redirect to the new ones, so there are no breaking changes.
When Minecraft fully moves over to using the unobfuscated jar (the update after Mounts of Mayhem), the old fields will be removed and other names, particularly class names, that could not be easily changed without breaking the public API will also be changed.
beta
Thermoo 8.1.0
8.1.031 окт. 2025 г.2,1 тыс.Minecraft: 1.21.9, 1.21.10fabric, quilt
Что нового
# Migration to Mojang Mappings
Based Mojang's move towards removing obfuscation, and anticipating Fabric's likely inevitable move to MojMap, I have remapped Thermoo to MojMap. This was a big change code-side for Thermoo but, thanks to intermediary, this should not constitute any breaking changes to the public API. However, I may have messed something up, so this version will initially be released as a beta.
While no breaking changes are planned to be made at this time, a few fields and methods have been renamed to better conform to Official Mappings standards. These are as follows:
- `EnvironmentProvider.ENTRY_CODEC` -> `EnvironmentProvider.HOLDER_CODEC`
- `LightThresholdLightProvider#lightType` -> `LightThresholdLightProvider#lightLayer`
- `AttributeModifierTemperatureEffect$Config#id` -> `AttributeModifierTemperatureEffect$Config#location`
- `ScalingAttributeModifierTemperatureEffect$Config#id` -> `ScalingAttributeModifierTemperatureEffect$Config#location`
- `EnvironmentTickContext#world` -> `EnvironmentTickContext#level`
- `TemperatureEffects.STATUS_EFFECT` -> `TemperatureEffects.MOB_EFFECT`
The resource location of the temperature effect type `thermoo:status_effect` was changed to `thermoo:mob_effect`, however an alias has been added to allow existing datapacks to continue to work.
All old fields and methods have been deprecated and just redirect to the new ones, so there are no breaking changes.
When Minecraft fully moves over to using the unobfuscated jar (the update after Mounts of Mayhem), the old fields will be removed and other names, particularly class names, that could not be easily changed without breaking the public API will also be changed.
release
Thermoo 8.0.2
8.0.217 окт. 2025 г.2,3 тыс.Minecraft: 1.21.9, 1.21.10fabric, quilt
Что нового
* Updated to run natively on Minecraft 1.21.10, this should still work on 1.21.9.
release
Thermoo 8.0.1
8.0.12 окт. 2025 г.464Minecraft: 1.21.9, 1.21.10fabric, quilt
Что нового
* Thermoo is now targeting 1.21.9 directly
* Mod metadata now requires at least 1.21.9 to load
release
Thermoo 8.0.0
8.0.030 сент. 2025 г.212Minecraft: 1.21.9-rc1, 1.21.9fabric, quilt
Что нового
# Thermoo for MC 1.21.9
* Updated to 1.21.9-rc1, this will likely work with the full release of 1.21.9. Per the LTS policy, this release represents the end of support for 1.21.6-8.
* While there are no breaking changes in Thermoo itself, changes to the `Entity#getWorld()` method in Minecraft means this release breaks binary compatibility with 1.21.6-8, so Thermoo is therefore getting a major version bump.
* Updated Argentine Spanish translations (thanks [Texaliuz](https://github.com/TheDeathlyCow/thermoo/pull/85)!)
release
Thermoo 7.1.1
7.1.130 сент. 2025 г.4,5 тыс.Minecraft: 1.21.8fabric, quilt
Что нового
* Updated Argentine Spanish translations (thanks [Texaliuz](https://github.com/TheDeathlyCow/thermoo/pull/85)!)
release
Thermoo 7.1.0
7.1.029 авг. 2025 г.2,3 тыс.Minecraft: 1.21.8fabric, quilt
Что нового
# Thermoo 7.1.0 for Minecraft 1.21.6-8: Polymer Integration
Thermoo can now once again work fully server side, but only if [Polymer](https://modrinth.com/mod/polymer) is installed.
Some translations will be missing and custom command arguments will not autofill, but it will be compatible with vanilla
clients or clients not using Thermoo. This only applies for dedicated servers, and not to LAN worlds in single player.
The release of this update should not be conflated to mean that I will be making a Polymer patch for Frostiful or
Scorchful at this time, I mainly did this so that Thermoo can be used for custom datapacks on servers (which used to be
a feature of Thermoo).
Thermoo is now also being compiled against 1.21.8 instead of 1.21.6, but should still work for 1.21.6-8.
release
Thermoo 4.6.0
4.6.029 авг. 2025 г.8 тыс.Minecraft: 1.21.1fabric, quilt
Что нового
# Thermoo 4.6.0 for Minecraft 1.21.1: Polymer Integration
Thermoo can now once again work fully server side, but only if [Polymer](https://modrinth.com/mod/polymer) is installed.
Some translations will be missing and custom command arguments will not autofill, but it will be compatible with vanilla
clients or clients not using Thermoo. This only applies for dedicated servers, and not to LAN worlds in single player.
The release of this update should not be conflated to mean that I will be making a Polymer patch for Frostiful or
Scorchful at this time, I mainly did this so that Thermoo can be used for custom datapacks on servers (which used to be
a feature of Thermoo).
release
Thermoo 7.0.0
7.0.027 июн. 2025 г.4,4 тыс.Minecraft: 1.21.6, 1.21.7, 1.21.8fabric, quilt
Что нового
# Thermoo 7 for Minecraft 1.21.6
This update brings Thermoo to 1.21.6. Per the LTS policy, this release also represents the end of support for 1.21.5. This version will likely also work on 1.21.7, when that version releases.
There is one notable breaking change in this update: The status bar overlay events have been refactored to reduce complexity, prevent errors, and be more extensible for future updates (if needed). See [#82](https://github.com/TheDeathlyCow/thermoo/pull/82) for details.
To summarize, the main changes look something like this:
```diff
-StatusBarOverlayRenderEvents.AFTER_HEALTH_BAR.register(
- (DrawContext ctx, PlayerEntity player, Vector2i[] positions, int displayHealth, int maxDisplayHealth)-> {
- // rendering code
- });
+StatusBarOverlayRenderEvents.AFTER_HEALTH_BAR.register(
+ (DrawContext ctx, PlayerEntity player, HeartBarContext heartBarContext) -> {
+ SequencedCollection<Vector2i> positions = heartBarContext.positions();
+ int displayHealth = heartBarContext.currentDisplayHalfHearts();
+ int maxDisplayHealth = heartBarContext.maxDisplayHalfHearts();
+
+ // rendering code
+ });
```
release
Thermoo 6.0.4
6.0.419 июн. 2025 г.5 тыс.Minecraft: 1.21.5fabric, quilt
Что нового
* Added a message to help users find the mod Thermoo Patches if they need it
* Added a new config file in `thermoo.properties` that can be used to disable this message
release
Thermoo 4.5.4
4.5.419 июн. 2025 г.21,5 тыс.Minecraft: 1.21.1fabric, quilt
Что нового
* Added a message to help users find the mod Thermoo Patches if they need it
* Added a new config file in `thermoo.properties` that can be used to disable this message
release
Thermoo 6.0.3
6.0.35 мая 2025 г.1,9 тыс.Minecraft: 1.21.5fabric, quilt
Что нового
* Fixed Thermoo temperature unit codecs not decoding properly in the Turkish locale
release
Thermoo 5.3.3
5.3.35 мая 2025 г.6,5 тыс.Minecraft: 1.21.2, 1.21.3, 1.21.4fabric, quilt
Что нового
* Fixed Thermoo temperature unit codecs not decoding properly in the Turkish locale
release
Thermoo 4.5.3
4.5.35 мая 2025 г.10,7 тыс.Minecraft: 1.21.1fabric, quilt
Что нового
* Fixed Thermoo temperature unit codecs not decoding properly in the Turkish locale
release
Thermoo 6.0.2
6.0.21 мая 2025 г.209Minecraft: 1.21.5fabric, quilt
Что нового
* Added Argentine Spanish Translations (Texaliuz)
release
Thermoo 5.3.2
5.3.21 мая 2025 г.327Minecraft: 1.21.2, 1.21.3, 1.21.4fabric, quilt
Что нового
* Added Argentine Spanish Translations (Texaliuz)
release
Thermoo 4.5.2
4.5.21 мая 2025 г.200,3 тыс.Minecraft: 1.21.1fabric, quilt
Что нового
* Added Argentine Spanish Translations (Texaliuz)
release
Thermoo 6.0.1
6.0.116 апр. 2025 г.360Minecraft: 1.21.5fabric, quilt
Что нового
- Fix a crash when riding mounts with specific max health values
release
Thermoo 5.3.1
5.3.116 апр. 2025 г.899Minecraft: 1.21.2, 1.21.3, 1.21.4fabric, quilt
Что нового
- Fix a crash when riding mounts with specific max health values
release
Thermoo 4.5.1
4.5.116 апр. 2025 г.3,5 тыс.Minecraft: 1.21.1fabric, quilt
Что нового
- Fix a crash when riding mounts with specific max health values
release
Thermoo 6.0
6.028 мар. 2025 г.374Minecraft: 1.21.5fabric, quilt
Что нового
# Update to Minecraft 1.21.5
This is the first stable release for Minecraft 1.21.5. It includes a few new features from Thermoo 4.4 and 5.3 as well that are meant to provide greater flexibility and depth.
- Updated to Minecraft 1.21.5
- Removed all deprecated APIs, including the `EnvironmentController`, `TemperatureConverter`, and some methods
of `ConfiguredTemperatureEffect`, and `TemperatureEffects`.
- Many classes such as `EnvironmentCommand` and `TemperatureCommand` classes were made final, and all static only now
have a private constructor. This is technically a breaking change, though unlikely to affect anyone.
- Updated game tests to use new framework
- Replaced the `canFreeze` and `canOverheat` Kotlin temperature aware function extensions with `canBeCold`
and `canBeWarm` to fix a conflict with the method `Entity#canFreeze`.
- Environment Heat and Frost Resistance can now accept negative values. A negative environment resistance now provides a random chance of doubling a temperature decrease from an environmental source.
- Added a `priority` field to the environment definition. This is used to sort the order that environment providers are applied to a biome during a lookup.
- Implementation detail only: environment providers are now stored as a field of the `Biome` class, this should allow for _slightly_ faster lookup times.
release
Thermoo 5.3
5.328 мар. 2025 г.912Minecraft: 1.21.2, 1.21.3, 1.21.4fabric, quilt
Что нового
# Environment Refinements
This update adds a few new features to the environment API to make it more flexible and offer a bit more depth.
* Environment Heat and Frost Resistance can now accept negative values. A negative environment resistance now provides a random chance of doubling a temperature decrease from an environmental source.
* Added a `priority` field to the environment definition. This is used to sort the order that environment providers are applied to a biome during a lookup.
* Implementation detail only: environment providers are now stored as a field of the `Biome` class, this should allow for _slightly_ faster lookup times.
release
Thermoo 4.5
4.528 мар. 2025 г.3,8 тыс.Minecraft: 1.21.1fabric, quilt
Что нового
# Environment Refinements
This update adds a few new features to the environment API to make it more flexible and offer a bit more depth.
* Environment Heat and Frost Resistance can now accept negative values. A negative environment resistance now provides a random chance of doubling a temperature decrease from an environmental source.
* Added a `priority` field to the environment definition. This is used to sort the order that environment providers are applied to a biome during a lookup.
* Implementation detail only: environment providers are now stored as a field of the `Biome` class, this should allow for _slightly_ faster lookup times.
beta
Thermoo 6.0-beta.1
6.0-beta.126 мар. 2025 г.182Minecraft: 1.21.5fabric, quilt
Что нового
# Update to Minecraft 1.21.5
This is a first release for Minecraft 1.21.5. It is initially released as a Beta because Cardinal Components API is not
yet stable, however from my testing it does seem to work fine. If you find any issues please feel free to report them
to https://github.com/TheDeathlyCow/thermoo/issues.
- Updated to Minecraft 1.21.5
- Removed all deprecated APIs, including the `EnvironmentController`, `TemperatureConverter`, and some methods
of `ConfiguredTemperatureEffect`, and `TemperatureEffects`.
- Many classes such as `EnvironmentCommand` and `TemperatureCommand` classes were made final, and all static only now
have a private constructor. This is technically a breaking change, though unlikely to affect anyone.
- Updated game tests to use new framework
- Replaced the `canFreeze` and `canOverheat` Kotlin temperature aware function extensions with `canBeCold`
and `canBeWarm` to fix a conflict with the method `Entity#canFreeze`.
alpha
[1.21.5-rc1] Thermoo 6.0-alpha.1
6.0-alpha.122 мар. 2025 г.214Minecraft: 1.21.5-rc1, 1.21.5-rc2, 1.21.5fabric, quilt
Что нового
# Update to Minecraft 1.21.5
This is a first release for Minecraft 1.21.5, targeting `1.21.5-rc1`. This version is currently unstable, and should
only be used for early porting.
- Updated to Minecraft 1.21.5
- Removed all deprecated APIs, including the `EnvironmentController`, `TemperatureConverter`, and some methods
of `ConfiguredTemperatureEffect`, and `TemperatureEffects`.
- Temporarily disabled gametests so that they can be rewritten at a later date
- The `EnvironmentCommand` and `TemperatureCommand` classes were made final and now have a private constructor. Other
static-only classes like this will receive similar treatment soon.
release
Thermoo 5.2.1
5.2.115 мар. 2025 г.310Minecraft: 1.21.2, 1.21.3, 1.21.4fabric, quilt
Что нового
* Updated to Minecraft 1.21.4
* Minecraft 1.21.2-1.21.3 still seem to work with this version, however support for these may be removed at any time
* Minecraft 1.20.1 is now officially unsupported
release
Thermoo 5.2
5.214 мар. 2025 г.167Minecraft: 1.21.3fabric, quilt
Что нового
# New Developer Wiki
- The Thermoo Wiki has moved! It has been moved to a new MkDocs-powered wiki available at https://thermoo.thedeathlycow.com/
- Along with the new wiki site, the wiki has been largely restructured and many pages have received updates.
- Contributors can also now contribute to the wiki via pull request on GitHub.
# Environment API
This is a large new API with a mix of datapack and mod-based components. I would highly recommend reading the [Environment API Overview](https://thermoo.thedeathlycow.com/api_overview/#environment-api) on the new wiki before going out and trying to implement it in your mods.
- Introduced a new datapack-based Environment API to control environment temperature changes.
- All methods in the Environment Controller have been replaced with a new, more fit for purpose alternative.
- The fundamental change here is that the Environment datapack registry now computes a Temperature for a biome in a some widely recognised temperature unit (Celsius, Fahrenheit, Kelvin, or Rankine), as well as a few other parameters, and then those parameters are converted into temperature point changes by an event listener.
- Added the datapack registry `thermoo/environment`. Format: https://thermoo.thedeathlycow.com/datapacks/environment_definition/
- Added the datapack registry `thermoo/environment_provider`. Format: https://thermoo.thedeathlycow.com/datapacks/environment_provider_definition/
- Added environment resistance attributes, `thermoo:environment_heat_resistance` and `thermoo:environment_frost_resistance`.
- The environment resistance attributes represent a percentage chance to "dodge" the temperature change calculated from the events in `ServerPlayerEnvironmentTickEvents` each time they are applied.
The full list of method replacements is as follows:
- `getBaseValueForAttribute()` -> `ThermooAttributes#baseValueEvent()`
- `getLocalTemperatureChange()` -> The [Environment Datapack Registry](https://thermoo.thedeathlycow.com/datapacks/environment_definition/)
- `getEnvironmentTemperatureForPlayer()` -> `ServerPlayerEnvironmentTickEvents.GET_TEMPERATURE_CHANGE`
- `getTemperatureEffectsChange()` -> `LivingEntityTemperatureTickEvents.GET_ACTIVE_TEMPERATURE_CHANGE`
- `getFloorTemperature()` -> `LivingEntityTemperatureTickEvents.GET_PASSIVE_TEMPERATURE_CHANGE`
- `getMaxWetTicks()` -> The entity attribute `thermoo:max_soaking_tick_multiplier` (on 1.21.1, the name is `thermoo:generic.max_soaking_tick_multiplier`)
- `getSoakChange()` -> `LivingEntitySoakingTickEvents.GET_SOAKING_CHANGE`
- `getHeatAtLocation()` -> `LivingEntityTemperatureTickEvents.GET_PASSIVE_TEMPERATURE_CHANGE`
- `applyAwareHeat()` -> `LivingEntityTemperatureTickEvents.ALLOW_ACTIVE_TEMPERATURE_CHANGE`
- `getHeatFromBlockState()` -> removed
- `isHeatSource()` -> removed
- `isColdSource()` -> removed
- `isAreaHeated()` -> removed
# Item Attribute Modifier Event
- Added an experimental `ModifyItemAttributeModifiersCallback.EVENT` that is very similar to the previous Fabric API event of the same name.
- This applies attribute modifiers to an entity when they equip or unequip an item, it does not actually modify the underlying `minecraft:attribute_modifiers` component of an item stack.
# Kotlin Bindings
- Added new Kotlin-specific method and field extensions to `TemperatureAware` and `Soakable`.
- These methods allow Kotlin users to use these interfaces in an intuitive way and without having to add a `thermoo$` prefix to all methods.
release
Thermoo 4.4
4.414 мар. 2025 г.1,7 тыс.Minecraft: 1.21.1fabric, quilt
Что нового
# New Developer Wiki
- The Thermoo Wiki has moved! It has been moved to a new MkDocs-powered wiki available at https://thermoo.thedeathlycow.com/
- Along with the new wiki site, the wiki has been largely restructured and many pages have received updates.
- Contributors can also now contribute to the wiki via pull request on GitHub.
# Environment API
This is a large new API with a mix of datapack and mod-based components. I would highly recommend reading the [Environment API Overview](https://thermoo.thedeathlycow.com/api_overview/#environment-api) on the new wiki before going out and trying to implement it in your mods.
- Introduced a new datapack-based Environment API to control environment temperature changes.
- All methods in the Environment Controller have been replaced with a new, more fit for purpose alternative.
- The fundamental change here is that the Environment datapack registry now computes a Temperature for a biome in a some widely recognised temperature unit (Celsius, Fahrenheit, Kelvin, or Rankine), as well as a few other parameters, and then those parameters are converted into temperature point changes by an event listener.
- Added the datapack registry `thermoo/environment`. Format: https://thermoo.thedeathlycow.com/datapacks/environment_definition/
- Added the datapack registry `thermoo/environment_provider`. Format: https://thermoo.thedeathlycow.com/datapacks/environment_provider_definition/
- Added environment resistance attributes, `thermoo:environment_heat_resistance` and `thermoo:environment_frost_resistance`.
- The environment resistance attributes represent a percentage chance to "dodge" the temperature change calculated from the events in `ServerPlayerEnvironmentTickEvents` each time they are applied.
The full list of method replacements is as follows:
- `getBaseValueForAttribute()` -> `ThermooAttributes#baseValueEvent()`
- `getLocalTemperatureChange()` -> The [Environment Datapack Registry](https://thermoo.thedeathlycow.com/datapacks/environment_definition/)
- `getEnvironmentTemperatureForPlayer()` -> `ServerPlayerEnvironmentTickEvents.GET_TEMPERATURE_CHANGE`
- `getTemperatureEffectsChange()` -> `LivingEntityTemperatureTickEvents.GET_ACTIVE_TEMPERATURE_CHANGE`
- `getFloorTemperature()` -> `LivingEntityTemperatureTickEvents.GET_PASSIVE_TEMPERATURE_CHANGE`
- `getMaxWetTicks()` -> The entity attribute `thermoo:max_soaking_tick_multiplier` (on 1.21.1, the name is `thermoo:generic.max_soaking_tick_multiplier`)
- `getSoakChange()` -> `LivingEntitySoakingTickEvents.GET_SOAKING_CHANGE`
- `getHeatAtLocation()` -> `LivingEntityTemperatureTickEvents.GET_PASSIVE_TEMPERATURE_CHANGE`
- `applyAwareHeat()` -> `LivingEntityTemperatureTickEvents.ALLOW_ACTIVE_TEMPERATURE_CHANGE`
- `getHeatFromBlockState()` -> removed
- `isHeatSource()` -> removed
- `isColdSource()` -> removed
- `isAreaHeated()` -> removed
# Item Attribute Modifier Event
- Added an experimental `ModifyItemAttributeModifiersCallback.EVENT` that is very similar to the previous Fabric API event of the same name.
- This applies attribute modifiers to an entity when they equip or unequip an item, it does not actually modify the underlying `minecraft:attribute_modifiers` component of an item stack.
# Kotlin Bindings
- Added new Kotlin-specific method and field extensions to `TemperatureAware` and `Soakable`.
- These methods allow Kotlin users to use these interfaces in an intuitive way and without having to add a `thermoo$` prefix to all methods.
release
Thermoo 5.1
5.115 янв. 2025 г.295Minecraft: 1.21.3fabric, quilt
Что нового
- Added `get` methods to the `TemperatureAware` class that allow the interface to be obtained from `LivingEntity` and `Entity`. Primarily intended for cases where interface injection may not work well.
- Added translated for the consumable tags
- Replaced the attribute base value method of the environment controller with dedicated events. The old controller method has been deprecated. See PR #43
- Entity tags and lists are now allowed in the temperature effect `entity_type` field as a `#` prefixed tag ID or list of direct entity type IDs. See PR #42
- Fixed the `remove()` temperature effect method not being called/tracked properly per entity. In particular, this fixes an issue where attribute modifier temperature effects would behave weirdly
- The constructor for the `ConfiguredTemperatureEffect` has been marked as internal. The previous constructor has been kept to avoid a breaking change, but it has now also been marked as internal.
- Deprecated `ConfiguredTemperatureEffect#applyIfPossible()` (replaced with an `apply()` method that returns success instead).
- Deprecated `ConfiguredTemperatureEffect#entityType()` - use the new `entityTypes()` method (plural)
- Deprecated `TemperatureEffects#getEffectsForEntity` - this method should not have been part of the API and will be removed
- Added `TemperatureEffects#getEffect` that allows for looking up a configured temperature effect by ID
- The "resource conditions were not met" log has been moved to debug, which should reduce log spam caused by Thermoo
release
Thermoo 4.3
4.315 янв. 2025 г.57,8 тыс.Minecraft: 1.21.1fabric, quilt
Что нового
- Added `get` methods to the `TemperatureAware` class that allow the interface to be obtained from `LivingEntity` and `Entity`. Primarily intended for cases where interface injection may not work well.
- Added translated for the consumable tags
- Replaced the attribute base value method of the environment controller with dedicated events. The old controller method has been deprecated. See PR #43
- Entity tags and lists are now allowed in the temperature effect `entity_type` field as a `#` prefixed tag ID or list of direct entity type IDs. See PR #42
- Fixed the `remove()` temperature effect method not being called/tracked properly per entity. In particular, this fixes an issue where attribute modifier temperature effects would behave weirdly
- The constructor for the `ConfiguredTemperatureEffect` has been marked as internal. The previous constructor has been kept to avoid a breaking change, but it has now also been marked as internal.
- Deprecated `ConfiguredTemperatureEffect#applyIfPossible()` (replaced with an `apply()` method that returns success instead).
- Deprecated `ConfiguredTemperatureEffect#entityType()` - use the new `entityTypes()` method (plural)
- Deprecated `TemperatureEffects#getEffectsForEntity` - this method should not have been part of the API and will be removed
- Added `TemperatureEffects#getEffect` that allows for looking up a configured temperature effect by ID
- The "resource conditions were not met" log has been moved to debug, which should reduce log spam caused by Thermoo
release
Thermoo 5.0.2
5.0.22 янв. 2025 г.159Minecraft: 1.21.3fabric, quilt
Что нового
* Fixed a crash when a mount had more than 60 health and the temperature display exceeded the hearts actually being displayed
* Exposed Fabric API properly in gradle.
release
Thermoo 4.2.5
4.2.52 янв. 2025 г.4,5 тыс.Minecraft: 1.21.1fabric, quilt
Что нового
* Updates Thermoo 4 to run natively on Minecraft 1.21.1 (Minecraft 1.21 support has been removed)
* Deprecated the armor materials API: This API is removed for Thermoo 5+, please consider using [Item Components](https://github.com/boyonk913/item-components) instead.
* Fixed a crash when a mount had more than 60 health and the temperature display exceeded the hearts actually being displayed
* Exposed Fabric API properly in gradle.
release
Thermoo 5.0.1
5.0.15 дек. 2024 г.261Minecraft: 1.21.3fabric, quilt
Что нового
* Fixed TheDeathlyCow/frostiful#123: Crash with the mount health temperature bar
release
Thermoo 4.2.4
4.2.45 дек. 2024 г.11,1 тыс.Minecraft: 1.21, 1.21.1fabric, quilt
Что нового
* Fixed TheDeathlyCow/frostiful#123: Crash with the mount health temperature bar
* The season events now MUST return the correct season type. If a listener attempts to return the wrong season type, then it will be skipped and an empty will be returned instead. For example, if a `GET_TROPICAL_SEASON` listener attempts to return summer instead of tropical wet or dry, then it will be ignored.
release
Thermoo 5.0
5.012 нояб. 2024 г.340Minecraft: 1.21.3fabric, quilt
Что нового
This update brings Thermoo to 1.21.3. This is the first step in updating Frostiful and Scorchful. 1.21.1 will still continue to receive updates and fixes along with 1.21.3 for the foreseeable future, this is just for those who wish to play with newer versions.
Also, the Scorchful update may take a bit longer than Frostiful as it is currently blocked by Satin needing to update. Stay tuned!
Changelog:
* Updates Thermoo to 1.21.3
* *Removed* Armor Materials API including all tags and events. Unfortunately, the Armor Material registry was removed in 1.21.2, and so this API was completely unable to be updated. As an alternative, I would recommend checking out the [Item Components mod](https://modrinth.com/mod/item-components) as it provides a much more powerful way to modify the base settings of items (including attributes) in a data-driven format.
* Removed the `generic.` prefix from all attribute IDs. For example, the ID for Frost Resistance was previously `thermoo:generic.frost_resistance`, but is now simply `thermoo:frost_resistance`. This change was made to reflect similar changes to attribute IDs in the vanilla game.
* For old worlds being updated to 1.21.3 for the first time, this prefix change will be datafixed so all items and entities should retain their old attribute values (and you won't get any unknown attribute spam in the console). However, API users (i.e., mods, mod packs, and data packs) will have to adjust their code for this change manually.
* The season events now MUST return the correct season type. If a listener attempts to return the wrong season type, then it will be skipped and an empty will be returned instead. For example, if a `GET_TROPICAL_SEASON` attempts to return summer instead of tropical wet or dry, then it will be ignored.
release
Thermoo 4.2.3
4.2.328 окт. 2024 г.4,1 тыс.Minecraft: 1.21, 1.21.1fabric, quilt
Что нового
* Fixed NPE with Colorful Hearts
release
Thermoo 4.2.2
4.2.228 окт. 2024 г.271Minecraft: 1.21, 1.21.1fabric, quilt
Что нового
* Fixed #35: Crash with N=1 mod 10 hearts
release
Thermoo 4.2.1
4.2.122 окт. 2024 г.2,2 тыс.Minecraft: 1.21, 1.21.1fabric, quilt
Что нового
* Fixed a crash with Pokemon Trainer Mob
* Added conventional thermoo tags for temperature-related consumeables
* Added some builder helper methods for the custom loot conditions
release
Thermoo 2.3.3
2.3.322 окт. 2024 г.3,1 млнMinecraft: 1.20.1fabric, quilt
Что нового
* Fixed a crash with Pokemon Trainer Mob
release
Thermoo 4.2
4.23 авг. 2024 г.12,4 тыс.Minecraft: 1.21, 1.21.1-rc1, 1.21.1fabric, quilt
Что нового
* Added a `thermoo:attribute_modifier` temperature effect that applies "fixed" attribute modifiers to affected entities.
* Added the tropical Wet and Dry Seasons to the Seasons API, along with an event to query these seasons
* Cardinal Components API is no longer embedded with Thermoo - users must now download it separately from Thermoo.
release
Thermoo 4.1.1
4.1.119 июл. 2024 г.5,4 тыс.Minecraft: 1.21fabric, quilt
Что нового
* Fixed armor material attribute IDs overriding each other
* Fixed the check temperature command sending an error
release
Thermoo 4.1
4.111 июл. 2024 г.736Minecraft: 1.21fabric, quilt
Что нового
Adds a new armour materials API to sort of replace the primary use case of the old item attribute modifiers API.
* Added new *armor material* tags for different levels of frost and heat resistance. Note that these are tags for armor *materials*, not armor *items*, and therefore go in `data/<namespace>/tags/armor_material/`.
* Added two new events: `ArmorMaterialEvents.GET_HEAT_RESISTANCE` and `ArmorMaterialEvents.GET_FROST_RESISTANCE` to get the respective heat and frost resistance for an armor material and armor type (like boots, chestplate, helmet).
* Known issue: Using the tags to apply heat and frost resistance doesn't really work with a datapack's normal world-independence. For now, the tags should only be used in datapacks that apply to all worlds on a modpack/server.
release
Thermoo 4.0
4.022 июн. 2024 г.873Minecraft: 1.21fabric, quilt
Что нового
Updates Thermoo to MC 1.21. Includes several breaking changes:
- Thermoo now requires Java 21, matching Minecraft's requirement.
- *Removed* item attribute modifiers, without replacement. This was too difficult of a feature to update with item components, but a replacement feature may come soon.
- The path of temperature effects was changed from `thermoo/temperature_effects` to `thermoo/temperature_effect`, to reflect similar changes made to the vanilla game.
- The constant fields in `ThermooAttributes` now have type `RegistryEntry<EntityAttribute>` rather than `EntityAttribute`
- `EnvironmentController#getBaseValueForAttribute` had its signature changed to take a `RegistryEntry<EntityAttribute>` rather than `EntityAttribute`
- `ScalingAttributeModifierTemperatureEffect.Config` had several changes in both Java and Datapack APIs. The `attribute` type was changed to `RegistryEntry<EntityAttribute>` rather than `EntityAttribute`, and the UUID and name fields were removed and replaced with an identifier field called `id`, with this change also affecting datapacks. Furthermore, datapack's `operation` field must now be one of `add_value`, `add_multiplied_base`, or `add_multiplied_total`.
- Temperature effects and custom Loot Condition types now have a `MapCodec` instead of a `Codec` (however temperature effect configs are still regular Codecs).
- The class `ThermooSeasons` was renamed to `ThermooSeason`.
- `PlayerEnvironmentEvents.CAN_APPLY_PASSIVE_TEMPERATURE_CHANGE` now returns a `TriState` instead of a boolean, making it clearer when a listener is passing.
The following additions were made to Thermoo:
- Added default temperature converter settings instances for all units
release
Thermoo 2.3.2
2.3.220 июн. 2024 г.339,9 тыс.Minecraft: 1.20.1fabric, quilt
Что нового
This is a hotfix update to update the Colorful Hearts integration to work with the new version of Colorful Hearts.
* Fixed colorful hearts crashing (by [Terrails](https://github.com/Terrails))
* Corresponding updates for Frostiful and Thermoo Patches coming soon
release
Thermoo 3.2.1
3.2.120 июн. 2024 г.4,4 тыс.Minecraft: 1.20.4fabric, quilt
Что нового
This is just a small update to add some new translations
* Added Finnish Translations (by [N0aW](https://github.com/N0aW)) 🇫🇮
* Added Vietnamese Translations (by [godkyo98](https://github.com/godkyo98)) 🇻🇳
release
Thermoo 3.2
3.27 мая 2024 г.1,9 тыс.Minecraft: 1.20.4fabric, quilt
Что нового
This update adds new features to temperature effects, and a new command
* Resolves #15: Fabric resource conditions may now be applied to temperature effects
* Resolves #16: Added a new `soaking` command to read and write to an entity's soaking value
* Resolves #19: Added optional `loading_priority` to temperature effects
* Loading priority allows for load-order independent overriding of temperature effects between mods and datapacks to allow for easier compatibility patching
* Resolves #20: Added new temperature effect type `thermoo:function`
* Function temperature effects run a datapack function on a regular interval. The config provides options for the function to execute, the length of the interval (in ticks), the permission level of the function to execute, and the macro arguments of the function. The execution context of the function will be `as` and `at` the entity.
release
Thermoo 3.1.3
3.1.327 апр. 2024 г.844Minecraft: 1.20.4fabric, quilt
Что нового
* Fixed an issue with item attribute modifier codecs that caused them to fail to encode when using tags on servers.
release
Thermoo 3.1.2
3.1.223 апр. 2024 г.526Minecraft: 1.20.4fabric, quilt
Что нового
* Added a `require_preferred_slot` field to item attribute modifiers
release
Thermoo 3.1.1
3.1.123 апр. 2024 г.464Minecraft: 1.20.4fabric, quilt
Что нового
* Fixed log spam with Eldritch Mobs and Mouse Wheelie
release
Thermoo 2.3.1
2.3.123 апр. 2024 г.282,1 тыс.Minecraft: 1.20.1fabric, quilt
Что нового
* Fixed log spam with Eldritch Mobs and Mouse Wheelie
release
Thermoo 3.1
3.120 апр. 2024 г.520Minecraft: 1.20.4fabric, quilt
Что нового
* Updated to 1.20.4
* Added Javadoc to the loot condition types
beta
Thermoo 3.0
3.013 апр. 2024 г.1,5 тыс.Minecraft: 1.20.2fabric, quilt
Что нового
Thermoo is now updated to 1.20.2. This is the first step to updating to 1.20.4. This update includes a few breaking changes to the temperature effect and item attribute modifiers APIs. The JSON APIs will mostly work as before, with only a few changes.
This will likely be the only update for 1.20.2.
Changelog:
* Updated Thermoo to MC 1.20.2
* Refactored temperature effects to use codecs instead of serializers.
* Some nonsensical values in temperature effect JSONs are no longer allowed
* Equipment slot and attribute operations are now supplied as `lower_case` strings instead of `UPPER_CASE`.
* Removed built in integrations for Fabric Seasons, Colorful Hearts, and Overflowing bars. These have been moved to [Thermoo Patches](https://github.com/TheDeathlyCow/thermoo-patches).
* Removed the deprecated temperature effect `thermoo:freeze_damage_legacy` and associated Legacy Damage temperature effect type.
* Removed the `thermoo.temperature` field from `minecraft:entity_properties` loot conditions
* Added `thermoo:temperature` and `thermoo:soaked` loot conditions
release
Thermoo 2.3
2.35 апр. 2024 г.108,7 тыс.Minecraft: 1.20.1fabric, quilt
Что нового
* Added the event `StatusBarOverlayRenderEvents.AFTER_MOUNT_HEALTH_BAR`, which is very similar to the `AFTER_HEALTH_BAR` event, except it renders after the health bar of the player's current mount (eg, pigs, horses, camels).
release
Thermoo 2.2
2.225 мар. 2024 г.4,2 тыс.Minecraft: 1.20.1fabric, quilt
Что нового
This update adds a new experimental item attribute modifiers datapack API, as well as a new temperature effect and some new APIs.
* Gave the [wiki](https://github.com/TheDeathlyCow/thermoo/wiki) a facelift to improve user experience! Give a look!
* Updated the mod page to reflect changes in Thermoo 2.0.
* Updated the mod icon!
* Added experimental item attribute modifiers
* Added Temperature unit API
* Added `thermoo:sequence` temperature effect
* Added client-only `HeartOverlayRenderEvent` for rendering temperature overlays on the health bar
* Added a seasons integration API
* Added Chinese translations, thanks [JellyBubb1e!](https://github.com/TheDeathlyCow/thermoo/pull/7)
# Item Attribute Modifiers
Item attribute modifiers have been ported from Frostiful. They allow datapacks to modify the default attributes of items easily. This is particularly useful for mod pack developers who want to add attributes to non-Thermoo based modded armors. It allows for attributes to be applied to items based on both tags and item IDs.
The major enhancement it makes over Frostiful is that these datapacks can be applied server side and, provided clients have Thermoo installed, will sync automatically so that they will actually appear on the tooltip in multiplayer. The previous system did not do this, and so often times the tooltip would not show modified attributes, which may have led to some confusion.
This feature is still experimental and could change or even be removed in future versions of Thermoo. A particular issue is that it could cause some lag issues when there are a lot of attribute modifiers defined by the datapack and a lot of item stacks are created at once. Furthermore, MC 1.20.5's changes to item stack NBT may make this almost entirely redundant or broken. Proceed with caution!
Here is an example item attribute modifier JSON file:
```json5
{
"attribute": "thermoo:generic.heat_resistance",
"modifier": {
"uuid": "413a10a0-bf0b-47db-a9a9-2eb3dda3bbaf",
"name": "Test",
"value": -1.0,
"operation": "ADDITION"
},
"item": {
"items": [
"minecraft:diamond_helmet",
"minecraft:iron_helmet",
"minecraft:leather_helmet"
],
// you can also use a tag here
"tag": "example:all_helmets"
},
// replace with any equipment slot, like CHEST, LEGS, FEET, MAINHAND, OFFHAND
"slot": "HEAD"
}
```
# Temperature Unit API
This is a new java and command API that allows users to convert between temperature-points-per-tick values and ambient temperature values in normal temperature units (like Celsius, Fahrenheit, etc). By default, it converts based in Celsius and with 0 -1 temp/tick = 5C -14C, temp/tick = 15C - 24C, 1 temp/tick = 25C - 34C, etc. You can adjust how this works using the `settings` parameter. You can visualize how to convert Celsius to temperature per tick using this Desmos graph: https://www.desmos.com/calculator/z1tqbiol9l. In the red line, the x-axis is ambient temperature in Celsius, and the y-axis is temperature per tick. In the blue line, its the opposite: the x-axis is temperature per tick and the y-axis is ambient temperature in Celsius.
# Sequence Temperature Effect
Added a new meta temperature effect: `thermoo:sequence`.
Config consists of a single field - `children` - which is a list of other temperature effects. Each temperature effect is applied in order.
# Heart Overlay Event
The new `HeartOverlayRenderEvent.AFTER_HEALTH_BAR` event is a new client-side-only event that is meant to unify the code for temperature overlays in Frostiful and Scorchful. This new event comes with support for Colorful Hearts and Overflowing Bars, but this may be moved to a separate mod in the future that focuses more on compatibility patches for Thermoo.
# Seasons integration API
A new API for providing better compatibility with Seasons mods like Fabric Seasons and Serene Seasons. Currently, only Fabric Seasons is supported, however this will be removed from Thermoo in the future and moved to a dedicated patches mod. You can access seasons through the `ThermooSeasons` class.
release
Thermoo 2.1.2
2.1.228 февр. 2024 г.9,2 тыс.Minecraft: 1.20, 1.20.1fabric, quilt
Что нового
* Added a new `applyAwareHeat` method to the environment controller
* Cleaned up the cardinal components internals a bit
* Made the `getEnvironmentTemperatureForPlayer` return the base local temperature by default instead of 0.
release
Thermoo 2.1.1
2.1.122 янв. 2024 г.12,7 тыс.Minecraft: 1.20, 1.20.1fabric, quilt
Что нового
This is just a small update to hopefully improve server performance by synchronizing temperatures fewer times.
* Temperature-affected entities will now only sync their temperature to players within 32 blocks of their location
* Temperature-affected entities will now attempt to sync to players every 20 ticks.
* This update can be added to servers without a client update.
release
Thermoo 2.1.0
2.1.01 нояб. 2023 г.175,1 тыс.Minecraft: 1.20, 1.20.1fabric, quilt
Что нового
* Added a new `entity_type` field to temperature effects - this is a new field that causes the effect to *only* apply to the specific entity type. This is also more performant than using predicates for this, as the effect will only be ticked for that type. Unfortunately, this means that tags won't work in this field. However, for effects that should only apply to a single type of entity (eg players), using this field can significantly reduce the amount of stuff the server has to tick. If this field is unspecified, then the existing behaviour of ticking the effect on all entities is retained.
* Added a new `maxWetTicks(Soakable)` method to the environment controller. In order to preserve existing functionality, this defaults to a value of `600` instead of the usual `0`. However, this value may now be overridden by mods as they see fit.
* Fixed up some javadoc on the environment controller that was outdated
release
Thermoo 1.4.1
1.4.120 окт. 2023 г.16,7 тыс.Minecraft: 1.19.2fabric, quilt
Что нового
This is a backport of the data sync changes made in 2.0.2 due to their criticality.
* Fixed data sync randomly breaking for temperature and wetness when class initialization order does not match on client and server.
release
Thermoo 2.0.2
2.0.230 сент. 2023 г.14,7 тыс.Minecraft: 1.20, 1.20.1fabric, quilt
Что нового
* Set all attributes of Thermoo to be synchronized between client and server
release
Thermoo 2.0.1
2.0.129 сент. 2023 г.493Minecraft: 1.20, 1.20.1fabric, quilt
Что нового
# Increased Cardinality
* Switched from using data tracker and custom fields to using Cardinal Components for internal tracking of temperature and wetness
* You should not need to download Cardinal Components for this update
* This should also fix temperature not properly syncing on dedicated servers
release
Thermoo 2.0.0
2.0.05 сент. 2023 г.1,3 тыс.Minecraft: 1.20, 1.20.1fabric, quilt
Что нового
This update brings several major breaking changes to the Thermoo backend, hence the version number being set to 2.0.0. I hope I don't feel the need to do this again, but hopefully these changes make the mod a lot nicer to use. Most notably for users, this update removes Cloth as a dependency of Thermoo so now Thermoo's only dependency is Fabric API.
Changelog:
* Removed the `DefaultEnvironmentController` and replaced it with `EmptyEnvironmentController`.
* Removed Cloth as a direct dependency of Thermoo.
* Removed all config options, they are now once again a part of Frostiful
* Removed almost all events
* Added `CAN_APPLY_PASSIVE_TEMPERATURE_CHANGE` to `PlayerEnvironmentEvents`.
* Added a `EnvironmentControllerInitializeEvent` to control the order of environment controller decorator application.
* Set the base min/max temperature attribute values to 0.
* Fixed an issue where entities would not have their passive temperature changes properly calculated while riding a vehicle [TheDeathlyCow/Frostiful#47](https://github.com/TheDeathlyCow/frostiful/issues/47).
For most developers, I would strongly recommend rereading the Environment Controller wiki page, as it has almost entirely been rewritten. It is available here: https://github.com/TheDeathlyCow/thermoo/wiki/Environment-Controller-and-Events-(Mods)
## This version is incompatible with Frostiful 0.8.1!! Do not update Thermoo until Frostiful is also updated!
release
Thermoo 1.6.1
1.6.129 июн. 2023 г.1,3 тыс.Minecraft: 1.20, 1.20.1fabric, quilt
Что нового
* Marked as compatible with 1.20+
release
Thermoo 1.6
1.622 июн. 2023 г.211Minecraft: 1.20.1fabric
Что нового
# Pails and Tails
Thermoo is now updated to 1.20.1! This was a fairly small update, with only one real back end change
* Updated to MC 1.20.1
* Changed the order in which the evaluation of whether to apply a temperature effect is made, and slightly optimized the `ScalingAttributeModifierTemperatureEffect`
release
Thermoo 1.5.2
1.5.221 июн. 2023 г.1,2 тыс.Minecraft: 1.19.4fabric, quilt
Что нового
* Fixed status effect temperature effects not applying
* Added a decorator to the EnvironmentController. See [here](https://github.com/TheDeathlyCow/thermoo/wiki/Environment-Controller-and-Events-(Mods)#extending-the-controller) for more details
release
Thermoo 1.5.1
1.5.12 мая 2023 г.108Minecraft: 1.19.4fabric, quilt
Что нового
* Made the hot floor temperature change require approval from an event listener
release
Thermoo 1.5
1.521 апр. 2023 г.96Minecraft: 1.19.4fabric, quilt
Что нового
Thermoo is now updated to 1.19.4!
Changes:
* Updated to 1.19.4
* Added fallback translations for command text feedback
* The `LegacyDamageTemperatureEffect` is now deprecated, as well as its implementation `thermoo:freeze_damage_legacy`
* Added the temperature effect `thermoo:damage`
* Breaking change: the constructor for `LegacyDamageTemperatureEffect` now requires a `Function<ServerWorld, DamageSource>` instead of just a `DamageSource`.
* Changed the logic for how status effect temperature effects are refreshed
release
Thermoo 1.4
1.412 апр. 2023 г.193,3 тыс.Minecraft: 1.19.2fabric, quilt
Что нового
* Added passive snow to the environment controller
* Removed `isCold()` check on applying heat sources - this is now left to users
* Added a temperature predicate to entity predicates
release
Thermoo 1.3.1
1.3.15 апр. 2023 г.138Minecraft: 1.19.2fabric, quilt
Что нового
* Starting at 1.3.1 as I have been experimenting with publishing on jitpack