Thermoo

Thermoo

Mod

A temperature library mod for Fabric and Quilt. Used by Frostiful and Scorchful.

Client and server Library

852.2k downloads
100 followers
Follow Save
90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!
Filter loader...
Filter versions...
Filter channels...
  • 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
  • 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.
  • 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 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.
  • 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 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.
  • 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 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.

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

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)
  • Corresponding updates for Frostiful and Thermoo Patches coming soon

This is just a small update to add some new translations

  • Added Finnish Translations (by N0aW) 🇫🇮
  • Added Vietnamese Translations (by godkyo98) 🇻🇳

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.
  • 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

Project members

TheDeathlyCow

Owner

Details

Licensed LGPL-3.0-only
Published 2 years ago
Updated 15 days ago