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
2.3.4
- Create fluid pipes now connect to the top of the hearth
- Entities can now be configured to affect ambient temperature
- This config is in entity-settings.toml or as JSON under entity/entity_temp/
- Added a tooltip explaining that game-altering settings in the config menu are disabled for non-OP players
- Added a tooltip to insulated armor items that shows which attributes come from insulation
- Added config setting to disable Cold Sweat's custom water freezing behavior
Fixes:
* (1.16) Fixed crash when Caves and Cliffs is not installed
* (1.16 - 1.18) Fixed the player getting wet when it is snowing and serene seasons is installed
* Fixed the soulspring lamp not consuming fuel
- Fixed Thirst Was Taken support not activating when the mod is installed
- Fixed Serene Seasons's seasonal temperatures applying to non-whitelisted dimensions in some cases
- Fixed block, dimension, structure, and biome tags not working properly in JSON configs
- Fixed temperature-affecting blocks behaving strangely when their max temperature is reached
- Fixed the world temperature gauge representing temperate temperatures inaccurately when the player has extreme min or max temperature traits
- Fixed water not accurately using the current season to determine freezing behavior
- Fixed soul fire and soul campfire not respecting the "Cold Soul Fire" config setting
- Fixed hearth-like blocks giving insulating effects to players 1 block outside its area-of-effect
- Fixed hover tooltips for temperature units in /temp debug not working properly
Technical Changes:
* Items, blocks, entities, etc. can now have multiple config setting applied to them
- This, for example, allows multiple settings with different conditions and effects to be applied
- If multiple valid settings are found, they will either stack or override each other depending on the object
* Changed the load order of configs & custom registries to be more consistent and sensible:
- User JSON configs (config/coldsweat/data/*)
- Java-based configs (BlockTemps only)
- Datapack JSON configs (data/<namespace>/cold_sweat/*)
- User TOML configs (config/coldsweat/*.toml)
- Configs loaded first will take precedence in cases where they do not stack, such as block temps and fuel items
* Added new fields to depth temperature JSON configs:
- "required_mods": A list of mods that must be installed for the config to be loaded
- "dimensions": A list of dimensions or tags that the config will apply to
* Added many new dynamic dimension tags (1.18+):
* These tags are dynamically filled, meaning they should work for all modded dimensions regardless of support
- #forge:bed_works: If beds are usable in the dimension
- #forge:has_ceiling: If the dimension has a ceiling (i.e. the Nether)
- #forge:has_raids: If pillager raids can occur in the dimension
- #forge:has_sky: Inverse of #forge:has_ceiling. If dimension has an open sky
- #forge:has_skylight: If the dimension has ambient light
- #forge:natural: If the dimension is considered "natural"
- #forge:overworld_like: If the dimension is similar to the Overworld (has_sky, has_skylight, and natural)
- #forge:piglin_safe: If piglins will not zombify in the dimension
- #forge:respawn_anchor_works: If respawn anchors are usable in the dimension
- #forge:ultrawarm: If the dimension is extremely hot (i.e. the Nether)
- #forge:unnatural: Inverse of #forge:natural
* Added new arguments for TOML-based block temp configs:
- nbt: Optional. The block entity's NBT data must match this to apply the temperature (fails the check if the block has no block entity)
- max-temp: Optional. The maximum world temperature at which the block temp will be effective. If the block's temperature is negative, this will be the minimum temperature
- Added max_temp and min_temp fields to block temp JSON configs
- Block temperatures for ice blocks, boiler, icebox, and campfires have been moved to TOML rather than Java
- They will be automatically re-added to world_settings.toml
- Optimized the hearth's spreading algorithm
- Optimized the performance of non-player temperature-affected entities
- Any block tagged as #minecraft:ice will now cool the nearby area like Vanilla ice blocks
- Any block tagged as #minecraft:campfires will now heat the nearby area like Vanilla campfires (except for the soul campfire)
- TempModifiers are no longer synced to the client if a modifier is replaced with an identical one