Thermoo

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

File Details

Thermoo 9.0.0

  • R
  • Dec 19, 2025
  • 252.72 KB
  • 6.2K
  • 1.21.11
  • Fabric + 1

File Name

thermoo-9.0.0.jar

Supported Versions

  • 1.21.11

Curse Maven Snippet

Fabric

modImplementation "curse.maven:thermoo-846544:7352141"

Quilt

modImplementation "curse.maven:thermoo-846544:7352141"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

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.

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:

-Optional<ThermooSeason> season = ThermooSeason#getCurrentSeason(level);
+Optional<TemperateSeason> season = TemperateSeason#getCurrentState(level, pos).map(ThermooSeasonState::season);
ThermooSeasonEvents.GET_CURRENT_TROPICAL_SEASON.register(
        (level, pos) -> {
-            return Optional.of(ThermooSeason.TROPICAL_WET);
+            return Optional.of(TropicalSeason.WET.createState());
        }
);