<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 1.5em;
font-weight: bold;">2.4-b03a</span><br><br>
<span style="color: #ffffff;
font-size: 1.17em;
font-weight: bold;"></span>
<ul style="font-size: 0.83em;">
<li><span style="color: #ffffff; font-weight: bold;">Entities can now be configured to be affected by temperature</span>
</li>
<li style="color: orange;">! This mechanic is experimental and disabled by default. It can be enabled in entity.toml
<ul style="margin-left: 40px;">
<li>Configured animals will heat up and cool down, and can die from overheating/freezing</li>
<li>Default entities are pigs, cows, sheep, chickens, goats, horses, donkeys, mules, and llamas</li>
<li>Each of these entities are also best suited for different climates</li>
<li>Entities in an uninhabitable climate will emit hot or cold "angry" particles</li>
<li>Entity temperature uses a heavily simplified version of the player temperature system</li>
<li>This should be fine in most scenarios, but the option is present to enable more robust measurements</li>
<li>This is disabled by default, as it is less performant</li>
<li>Configurable via TOML, JSON, and KubeJS</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Soul stalks now have an initial "bud" stage when placed</span>
<ul style="margin-left: 40px;">
<li>This is a small, 1-block-tall stage that will grow into a full stalk</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Glowstone can now be used to "bonemeal" soul stalks (#cold_sweat:grows_soul_stalk)</span>
<ul style="margin-left: 40px;">
<li>It can also be applied by a dispenser</li>
</ul>
</li>
<li>The boiler now only lights up when it is performing a fuel-draining task:
<ul style="margin-left: 40px;">
<li>Heating waterskins</li>
<li>Purifying drinkable items (with Thirst Was Taken)</li>
<li>Warming a room with a smokestack</li>
</ul>
</li>
<li>Soul stalks now grow twice as fast, and bear soul sprouts 60% more often
</li>
<li>Added setting to toggle the new animated model for the soulspring lamp
</li>
<li>Added support for Soul Fire'd:
<ul style="margin-left: 40px;">
<li>When an entity is burning from soul fire, it will now emit cold</li>
<li>This is an entity_temp defined via JSON</li>
</ul>
</li>
<li>Soul fire now deals contact damage (like normal fire)
</li>
<li>Naturally-generated igloos are no longer warmer inside
</li>
<li>Updated the effect icon for ice resistance
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 1.17em;
font-weight: bold;">Fixes:</span>
<ul style="font-size: 0.83em;">
<li>(1.18, 1.19) Fixed Thirst Was Taken support not being enabled when the mod is installed
</li>
<li>Fixed the boiler not draining fuel when warming waterskins or purifying drinkable items
</li>
<li>Fixed chunkloading deadlock when scanning for temperature-affecting structures in some cases
</li>
<li>Fixed Just Enough Effect Descriptions recipes not showing the icebox and boiler as sources of frigidness and warmth
</li>
<li>Fixed some of the settings in the Temperature Effects tab not being marked as clientside when they should be
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 1.17em;
font-weight: bold;">Technical Changes:</span>
<ul style="font-size: 0.83em;">
<li>The list of "required_mods" in JSON configs is now a negatable list
</li>
<li><span style="color: #ffffff; font-weight: bold;">Changed how the GatherDefaultTempModifiers event works:</span>
<ul style="margin-left: 40px;">
<li>Name changed to DefaultTempModifiersEvent</li>
<li>Now fired for all temperature traits simultaneously instead of a separate event for each trait</li>
<li>Now uses a Map<Trait, List<TempModifier>> for collecting modifiers</li>
<li>Methods for adding/removing modifiers must now specify the trait to apply to</li>
<li>The old version of the event still functions, but is deprecated and will be deleted in a future release</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">A single modifier instance can now be added to multiple traits on an entity</span>
<ul style="margin-left: 40px;">
<li>This single instance will be preserved when saving & loading the entity</li>
<li>getLastInput() and getLastOutput() are now stored per-trait, and now take in a Trait argument</li>
<li>Added getFunction() method to TempModifier, which also takes in a Trait argument</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added tick() method to TempModifier</span>
<ul style="margin-left: 40px;">
<li>Naturally, this method is called every tick</li>
<li>This can be used to handle central calculations that aren't tied to any specific trait</li>
</ul>
</li>
<li>The player's body temperature equalization rate is no longer halved when temperature modifiers are applied to it
<ul style="margin-left: 40px;">
<li>For some custom temperature modifiers applied to the CORE trait, this means their rate might need to be increased</li>
</ul>
</li>
<li>Removed Temperature#getTemperatureAt(), since it was moved to WorldHelper in 2.3.10
</li>
<li>WorldHelper#getRoughTemperatureAt() now uses a less accurate but more performant method of getting the temperature
<ul style="margin-left: 40px;">
<li>Now accepts flags as a 3rd argument. 1 = use more accurate temperature, 2 = force update (forces a new calculation)</li>
<li>The "more accurate" system is the old system, which is generally still less precise and more performant than getTemperatureAt()</li>
</ul>
</li>
<li>Block requirements now accept a list of enum properties when checking block state (i.e. "type": ["top", "bottom"])
</li>
<li>Added convert() method to KubeJS (mirror of the method from the Temperature class)
</li>
</ul>
<br>
</div>
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }