2.3.8
* Added new textures for when a filled waterskin is hot or cold
- Removed the Far Lands and Modulo custom music tracks
- Added option to expand all collapsible tooltips by default
- Added a "trait" argument to the /temperature set & get sub-commands
Fixes:
* (1.18 - 1.19) Fixed crash when rendering the heatstroke blur effect
- (1.21) Fixed command parameters for temperature trait arguments not working properly
Translation Updates:
- Updated Russian translation (Heimdallr-1 on GitHub)
Technical Changes:
* Several major changes have been made to how block requirements and block_temps work in JSON
- Much better support for blockstates and a slight change to NBT
- See the online documentation for the new syntax
* Added new methods to TempModifiers: markDirty(), markClean(), isDirty()
- A TempModifier being "dirty" indicates that it should be synchronized to the client
- Dirty TempModifiers will be automatically synchronized via Temperature.updateModifiers(), then marked clean
- All methods for adding TempModifiers in the Temperature class now return a boolean indicating if the operation was successful
- Added addModifierById() method to GatherDefaultTempModifiersEvent
- Adds a modifier based on its registered ResourceLocation ID (useful for mod compat!)
* Added removeModifiers() method to GatherDefaultTempModifiersEvent
- The hearth, icebox, and boiler now use fluid tags for fueling:
- cold_sweat:hot
- cold_sweat:cold
2.3.7
* (1.20 - 1.21) Added compat for "Oh the Biomes We've Gone"
- Tweaked the temperatures for 39 biomes from the mod
- Chameleons now spawn in appropriate biomes from the mod
! world_settings.toml will need to be reset for these new temperature to apply
* Added (partial) compat for Vaklyrien Skies
- Temperature emitted from blocks placed on a ship will now properly affect the player
- More compatibility will be added in future updates
- (1.16) Goats now drop 1-2 mutton when killed
Fixes:
* Fixed crash on servers when rendering particles in some cases
- Fixed crash when updating configs from pre-2.3 versions if "Block Temperatures" is configured in a particular way
- Fixed the icebox's opening animation not synchronizing to all players on a server
- Fixed some particles not spawning for all players on a server when they should
* (1.16) Fixed custom mob spawning not working
- (1.18) Fixed chameleons spawning on invalid blocks
- (1.21) Fixed damage from freezing/overheating dealing knockback
Technical Changes:
* Implemented a new rendering manager (PostProcessShaderManager) to handle Cold Sweat's shaders
- Circumvents Minecraft's normal post-processing shader system to improve compat and allow for stacking of shader effects
* Removed deprecated methods from the Temperature and GatherDefaultTempModifiersEvent classes
* Java-based BlockTemps' min/max effect, min/max temp, range, and fade are now fields instead of just method return values
- These fields are now part of the constructor
- The existing methods will return the values of these fields by default, but can still be overridden with no additional changes necessary
- The old BlockTemp(Block... blocks) constructor is still present, and will initialize all other fields to a default value
* BlockTemp fading over distance is now handled outside the getTemperature() method, in BlockTempModifier
- This means you will no longer need to calculate the fade yourself and can simply return the temperature of the block
! For BlockTemps that still calculate the fade in the old way, the new fade will still be applied on top of the old one
- This isn't too bad, but it means the block will weaken exponentially
2.3.6
- Particles spawned by Cold Sweat are now dependent on the player's particle setting (All/Decreased/Minimal)
- Cold Sweat's custom ice breaking mechanics can now be disabled with the "Custom Ice Drops" setting in world_settings.toml
- Added config setting to disable Cold Sweat's TempModifiers (or those from other mods)
- TempModifiers control how temperature affects the player, so this will hopefully provide some more granular control over that
- Removed the "Cave Insulation Strength" config setting, as it is no longer used
- Reduced the underground temperature near y -64 so the player no longer overheats
- Removed the total resistance to block temperature provided by the Create netherite diving suit
Fixes:
* (1.21) Fixed crash when saving insulated armor items
* (1.20) Fixed crash when Serene Seasons 9.1 or newer is installed
- Serene Seasons support now requires version 9.1 or newer to be enabled
* Fixed crash when "Insulation Strength" is set to 0
* Fixed dynamic dimension_type tags not loading properly on servers
* Fixed feeding a chemeleon dropping the entire item stack from the player's hand
- Fixed insulation from mounts ignoring the "Insulation Strength" setting
- Fixed the world temperature indicator briefly displaying incorrectly when changing preferred units
- Fixed spectators getting wet in water
- Fixed being underwater counting as "underground" when calculating world temperature
- Fixed the "condition" field of JSON BlockTemp config files not supporting checking block states
- Fixed TOML-based block temperatures not checking NBT properly
- Fixed air not being consumed from Create's netherite backtank when in a sweltering environment
- (1.20 - 1.21) Fixed debug message showing when a tooltip containing adaptive insulation is displayed
- (1.16) Fixed the hearth debug visualizer rendering red outlines around solid blocks
Translation Updates:
* Added Japanese translation (Mohuzato on GitHub)
Technical Changes:
* (1.20) Dropped NeoForge support in favor of normal Forge, which is receiving more updates
* The TempModifierEvent.Calculate.Override/Modify events have been renamed to Pre/Post
- These events are functionally similar, but Pre has some changes:
- The event now has getFunction() and setFunction() methods for setting the resulting function before it is calculated
- The event must be cancelled for the function to be overwritten
* Changed the packages of some events for better organization:
- TempModifierEvent: api.event.common.temperature
- EnableTemperatureEvent: api.event.core.init
- GatherDefaultTempModifiersEvent: api.event.core.init
- BlockTempInitEvent: api.event.core.registry
- TempModifierRegisterEvent: api.event.core.registry
- EdiblesRegisterEvent: api.event.core.registry
- BlockStateChangedEvent: api.event.core.vanilla
- ChatComponentClickedEvent: api.event.core.vanilla
- EntityPickEvent: api.event.core.vanilla
- LivingEntityLoadAdditionalEvent: api.event.core.vanilla
- ServerConfigsLoadedEvent: api.event.core.vanilla
* Added InsulateItemEvent:
- Fired when an armor item is being insulated
- The insulator item can be modified before being applied to the armor
- The event can also be cancelled to prevent the insulation from being applied
* Added TickInsulationEvent:
- Fired when the player's equipment insulation is processed
- Allows for granular control over the insulation being provided by sources like armor, insulators, curios, and protection
- The event can be cancelled to prevent the insulation from applying to the player
2.3.5
!! (1.21 only) Due to a change in how armor insulation is saved/loaded, insulation data will be lost upon upgrading from a previous version. It is recommended that you temporarily remove all insulation on your armor before upgrading!
* Added an indicator to the screens of hearth-like blocks that shows if the block is being powered
- Wind, sandstorms, and tornadoes from Weather 2 will now affect the player's temperature
- Increased the maximum volume of the hearth's effect from 9000 to 12000 blocks
- Increased the maximum volume of the icebox & boiler's effect from 1500 to 2000 blocks
- Added a config option to change the effectiveness of the soulspring lamp at temperatures above the player's burning point
Fixes:
* Fixed crash when attempting to update config settings with invalid formatting
* Fixed crash when a boiler/icebox containing waterskins attempts to tick when the temperature rate is set to 0
* Fixed config-driven features stacking in effectiveness when entering multiple worlds in the same session
* Fixed hearth-like blocks' effects applying inconsistently depending on the player's position
* Fixed temperature not changing properly when the player travels underground
* Fixed config settings loading too late during world load, causing custom entity spawns (including chameleons) to not load
* Fixed adaptive insulation not adapting to the ambient temperature
- Fixed the insulation tooltip not displaying partial, negative, or large
- Fixed Spoiled compatibility causing "containerModifier" blocks defined in the Spoiled configs to not work properly
* Fixed hearth-like blocks forgetting that they are powered upon unloading and reloading the chunk
* Fixed hearth-like blocks causing chunk-loading deadlocks upon loading in some cases
- Fixed hearth-like blocks not affecting areas next to solid blocks properly in some cases
- Fixed the tooltip for food temperature always showing, even if the item has no temperature properties
- Fixed performance issues while rendering the "wetness" screen effect
- Fixed the description of "Knockback Chill" stating received knockback is reduced, rather than dealt knockback
- Fixed JSON configs containing entity requirements not properly checking dimension or biome when specified
- Fixed the wetness screen effect appearing dark when the player has night vision
- (1.20) Fixed the held item name text overlapping the player's body temperature icon when a thermometer is equipped
- (1.21) Fixed invalid formatting for the hearth's recipe causing it to be uncraftable
- (1.21) Fixed dynamic dimension_type tags not populating
- (1.16) Fixed "dimensions" field erroneously being named "dimension" in dimension temp JSON configs
- (1.16 - 1.19) Fixed JSON block temp configs not having min_temp or max_temp fields
- (1.18 - 1.19) Fixed the tooltip lines for attribute modifiers added by armor insulation rendering behind the tooltip
Technical Changes:
* Food temperature configs now stack when applied to the same item, rather than only using the first one loaded
* Renamed some field names for JSON configs to be more consistent:
- All entity requirement fields are named "entity"
- All item requirement fields are named "data"
- Affected configs: food, insulator, mount
* Biome temperatures and offsets now stack, rather than override, when applied to the same biome
- Dimension temperatures/offsets still override each other, meaning dimension temps still override everything
* Temperature region changes:
- Moved from /depth_temp/ to /temp_region/
- Temperature regions now support y-values outside the world limits
- Temperature regions now support "boundless" temp regions by omitting either the "top" or "bottom" bound
- These apply infinitely upward or downward (but not both), and have a constant temperature
* Java-based block temperatures are now loaded last to allow user configs to override them
- A registerFirst() method has been added to BlockTempRegisterEvent for BlockTemps that must break this rule and be registered first