- Fixed TheDeathlyCow/frostiful#123: Crash with the mount health temperature bar
- 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.
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 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 previouslythermoo:generic.frost_resistance
, but is now simplythermoo: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.
- Fixed NPE with Colorful Hearts
- Fixed #35: Crash with N=1 mod 10 hearts
- 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
- Fixed a crash with Pokemon Trainer Mob
- 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.
- Fixed armor material attribute IDs overriding each other
- Fixed the check temperature command sending an error
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
andArmorMaterialEvents.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.
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
tothermoo/temperature_effect
, to reflect similar changes made to the vanilla game. - The constant fields in
ThermooAttributes
now have typeRegistryEntry<EntityAttribute>
rather thanEntityAttribute
EnvironmentController#getBaseValueForAttribute
had its signature changed to take aRegistryEntry<EntityAttribute>
rather thanEntityAttribute
ScalingAttributeModifierTemperatureEffect.Config
had several changes in both Java and Datapack APIs. Theattribute
type was changed toRegistryEntry<EntityAttribute>
rather thanEntityAttribute
, and the UUID and name fields were removed and replaced with an identifier field calledid
, with this change also affecting datapacks. Furthermore, datapack'soperation
field must now be one ofadd_value
,add_multiplied_base
, oradd_multiplied_total
.- Temperature effects and custom Loot Condition types now have a
MapCodec
instead of aCodec
(however temperature effect configs are still regular Codecs). - The class
ThermooSeasons
was renamed toThermooSeason
. PlayerEnvironmentEvents.CAN_APPLY_PASSIVE_TEMPERATURE_CHANGE
now returns aTriState
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
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
andat
the entity.
- Fixed an issue with item attribute modifier codecs that caused them to fail to encode when using tags on servers.
- Added a
require_preferred_slot
field to item attribute modifiers
- Fixed log spam with Eldritch Mobs and Mouse Wheelie
- Updated to 1.20.4
- Added Javadoc to the loot condition types
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 ofUPPER_CASE
. - Removed built in integrations for Fabric Seasons, Colorful Hearts, and Overflowing bars. These have been moved to Thermoo Patches.
- Removed the deprecated temperature effect
thermoo:freeze_damage_legacy
and associated Legacy Damage temperature effect type. - Removed the
thermoo.temperature
field fromminecraft:entity_properties
loot conditions - Added
thermoo:temperature
andthermoo:soaked
loot conditions