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.
- 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 of600
instead of the usual0
. However, this value may now be overridden by mods as they see fit. - Fixed up some javadoc on the environment controller that was outdated
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.
- Set all attributes of Thermoo to be synchronized between client and server
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
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 withEmptyEnvironmentController
. - 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
toPlayerEnvironmentEvents
. - 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.
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!
- Marked as compatible with 1.20+
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
- Made the hot floor temperature change require approval from an event listener
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 implementationthermoo:freeze_damage_legacy
- Added the temperature effect
thermoo:damage
- Breaking change: the constructor for
LegacyDamageTemperatureEffect
now requires aFunction<ServerWorld, DamageSource>
instead of just aDamageSource
. - Changed the logic for how status effect temperature effects are refreshed
- 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
- Starting at 1.3.1 as I have been experimenting with publishing on jitpack