Mods
Resource Packs
Data Packs
Modpacks
Shaders
Plugins
Mods Resource Packs Data Packs Plugins Shaders Modpacks
Get Modrinth App Upgrade to Modrinth+
Sign in
ModsPluginsData PacksShadersResource PacksModpacks
Sign in
Settings
Thermoo

Thermoo

Temperature and Environment library mod for Fabric and Quilt. Used by Frostiful and Scorchful.

1.60M
131
Library
AboutChangelogVersions

Thermoo 3.1.1

by TheDeathlyCow on Apr 23, 2024
Download

Thermoo 2.3.1

by TheDeathlyCow on Apr 23, 2024
Download
  • Fixed log spam with Eldritch Mobs and Mouse Wheelie

Thermoo 3.1

by TheDeathlyCow on Apr 20, 2024
Download
  • Updated to 1.20.4
  • Added Javadoc to the loot condition types

Thermoo 3.0

by TheDeathlyCow on Apr 13, 2024
Download

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

Thermoo 2.3

by TheDeathlyCow on Apr 5, 2024
Download
  • 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).

Thermoo 2.2

by TheDeathlyCow on Mar 25, 2024
Download

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 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!

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:

{
    "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.

Thermoo 2.1.2

by TheDeathlyCow on Feb 28, 2024
Download
  • 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.

Thermoo 2.1.1

by TheDeathlyCow on Jan 22, 2024
Download

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.

Thermoo 2.1.0

by TheDeathlyCow on Nov 1, 2023
Download
  • 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

Thermoo 1.4.1

by TheDeathlyCow on Oct 20, 2023
Download

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.

Thermoo 2.0.2

by TheDeathlyCow on Sep 30, 2023
Download
  • Set all attributes of Thermoo to be synchronized between client and server

Thermoo 2.0.1

by TheDeathlyCow on Sep 29, 2023
Download

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

Thermoo 2.0.0

by TheDeathlyCow on Sep 5, 2023
Download

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.

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!

Thermoo 1.6.1

by TheDeathlyCow on Jun 29, 2023
Download
  • Marked as compatible with 1.20+

Thermoo 1.6

by TheDeathlyCow on Jun 22, 2023
Download

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

Thermoo 1.5.2

by TheDeathlyCow on Jun 21, 2023
Download
  • Fixed status effect temperature effects not applying
  • Added a decorator to the EnvironmentController. See here for more details

Thermoo 1.5.1

by TheDeathlyCow on May 2, 2023
Download
  • Made the hot floor temperature change require approval from an event listener

Thermoo 1.5

by TheDeathlyCow on Apr 21, 2023
Download

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

Thermoo 1.4

by TheDeathlyCow on Apr 12, 2023
Download
  • 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

Thermoo 1.3.1

by TheDeathlyCow on Apr 5, 2023
Download
  • Starting at 1.3.1 as I have been experimenting with publishing on jitpack
1
2
3

90% of ad revenue goes to creators

Support creators and Modrinth ad-free with Modrinth+
Filter

Show all versions

Modrinth is open source.

main@c8befb6

© Rinth, Inc.

Company

TermsPrivacyRulesCareers

Resources

SupportBlogDocsStatus

Interact

Discord X (Twitter) Mastodon Crowdin
Get Modrinth App Settings
NOT AN OFFICIAL MINECRAFT SERVICE. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.