2.4-b03b
Fixes:
Technical Changes:
- The icon of the input slot in the sewing table now switches between leather and shears to indicate that shears can be used
- Added custom temperatures to biomes from Regions Unexplored
- ! This only applies to freshly-generated configs, so world.toml might need to be deleted
- Insulating armor items that don't grant any insulation will now accept insulation
- i.e. the Create netherite diving set, which only gives attribute modifiers
- Soul stalk now generates more commonly in the soul sand valley biome
- The attribute modifiers for the Create netherite diving set have been removed from the helmet, leggings, and boots
- The backtank now gives the full effect (+100% heat dampening, +50% cold dampening)
- The primary (right-click) and secondary (sneak-right-click) actions for the waterskin are now configurable:
- Both can now be set to either drink or pour, so they can be swapped around or disabled
- These settings are in client.toml and are player-specific
Fixes:
- (1.21) Fixed the effect ID for frigidness still being "cold_sweat:chill"
- Fixed crash when calculating player/entity temperature attributes in some cases
- Fixed potential crash when managing entity temperature caches internally
- Fixed log spam when loading new entities into the world
- Fixed soul stalks generating with an incorrect bottom block
- Fixed all soul block segments turning into buds when upgrading an older world
- Fixed water drip effects appearing when emerging from water in spectator mode
- Fixed HUD elements rendering above other UI elements that they shouldn't
- Fixed "matches" field in registry removals not accepting a list of values
- Fixed "fuel" argument in KubeJS fuel configs being mistakenly named "temperature"
- Fixed the thermometer showing Fahrenheit units when right-clicked, even if units are set to Celsius
- Fixed TemperatureChangedEvent firing at incorrect times
- Fixed mixin conflict with mods that modify smithing recipes (like Sortilege)
Technical Changes:
- Temperature effects are now a modular system
- Added a new TempEffect Forge (Java-based) registry
- Each individual temperature effect (freezing health, screen blur, etc.) is now registered as a TempEffect
- TempEffects are assigned to entities via JSON, and apply to certain temperature ranges
- i.e. health freezes over if the player's temperature is between -50 and -100
- This system will be expanded upon and more thoroughly documented in the future
- Registry removals now support removing JSON registries by ID (i.e. "cold_sweat:entity/entity_temp/on_fire") via the "entries" field
- This does not work for TOML or KubeJS configs, as they do not have registry IDs
- KubeJS configs are now passed through the normal config pipeline
- They are now present in CreateRegistriesEvent
- They can now be targeted by registry removals
- The "matches" field in registry removals now uses NBT requirements instead of normal NBT
- This means that Cold Sweat's special NBT functions (cs:any_of, etc.) can now be used
- Registry removals can now choose which config types to target via the "config_type" field
- Accepts a list of strings ("toml", "json", or "kubejs")
- Added dedicated addRegistry() and addRegistries() methods to CreateRegistriesEvent
- Create backtank pressure now drains if the player has any insulator equipped that is part of the #drains_backtank tag and passes its requirements
2.4-b03a
Fixes:
Technical Changes:
- Entities can now be configured to be affected by temperature
- ! This mechanic is experimental and disabled by default. It can be enabled in entity.toml
- Configured animals will heat up and cool down, and can die from overheating/freezing
- Default entities are pigs, cows, sheep, chickens, goats, horses, donkeys, mules, and llamas
- Each of these entities are also best suited for different climates
- Entities in an uninhabitable climate will emit hot or cold "angry" particles
- Entity temperature uses a heavily simplified version of the player temperature system
- This should be fine in most scenarios, but the option is present to enable more robust measurements
- This is disabled by default, as it is less performant
- Configurable via TOML, JSON, and KubeJS
- Soul stalks now have an initial "bud" stage when placed
- This is a small, 1-block-tall stage that will grow into a full stalk
- Glowstone can now be used to "bonemeal" soul stalks (#cold_sweat:grows_soul_stalk)
- It can also be applied by a dispenser
- The boiler now only lights up when it is performing a fuel-draining task:
- Heating waterskins
- Purifying drinkable items (with Thirst Was Taken)
- Warming a room with a smokestack
- Soul stalks now grow twice as fast, and bear soul sprouts 60% more often
- Added setting to toggle the new animated model for the soulspring lamp
- Added support for Soul Fire'd:
- When an entity is burning from soul fire, it will now emit cold
- This is an entity_temp defined via JSON
- Soul fire now deals contact damage (like normal fire)
- Naturally-generated igloos are no longer warmer inside
- Updated the effect icon for ice resistance
Fixes:
- (1.18, 1.19) Fixed Thirst Was Taken support not being enabled when the mod is installed
- Fixed the boiler not draining fuel when warming waterskins or purifying drinkable items
- Fixed chunkloading deadlock when scanning for temperature-affecting structures in some cases
- Fixed Just Enough Effect Descriptions recipes not showing the icebox and boiler as sources of frigidness and warmth
- Fixed some of the settings in the Temperature Effects tab not being marked as clientside when they should be
Technical Changes:
- The list of "required_mods" in JSON configs is now a negatable list
- Changed how the GatherDefaultTempModifiers event works:
- Name changed to DefaultTempModifiersEvent
- Now fired for all temperature traits simultaneously instead of a separate event for each trait
- Now uses a Map<Trait, List<TempModifier>> for collecting modifiers
- Methods for adding/removing modifiers must now specify the trait to apply to
- The old version of the event still functions, but is deprecated and will be deleted in a future release
- A single modifier instance can now be added to multiple traits on an entity
- This single instance will be preserved when saving & loading the entity
- getLastInput() and getLastOutput() are now stored per-trait, and now take in a Trait argument
- Added getFunction() method to TempModifier, which also takes in a Trait argument
- Added tick() method to TempModifier
- Naturally, this method is called every tick
- This can be used to handle central calculations that aren't tied to any specific trait
- The player's body temperature equalization rate is no longer halved when temperature modifiers are applied to it
- For some custom temperature modifiers applied to the CORE trait, this means their rate might need to be increased
- Removed Temperature#getTemperatureAt(), since it was moved to WorldHelper in 2.3.10
- WorldHelper#getRoughTemperatureAt() now uses a less accurate but more performant method of getting the temperature
- Now accepts flags as a 3rd argument. 1 = use more accurate temperature, 2 = force update (forces a new calculation)
- The "more accurate" system is the old system, which is generally still less precise and more performant than getTemperatureAt()
- Block requirements now accept a list of enum properties when checking block state (i.e. "type": ["top", "bottom"])
- Added convert() method to KubeJS (mirror of the method from the Temperature class)
2.4-b02d
Fixes:
- The heart of the sea inside the soulspring lamp is now animated
- Added new advancement "Getting Cozy" for successfully creating a setup with the icebox/boiler and a smokestack
- The "Desperate Measures" advancement now requires the player to be standing in fire or lava to prevent accidental triggering
- Renamed the "Dressed to Go" advancement to "Dressed for a Quest"
- Using 4 or more insulation items that are part of the #minecraft:freeze_immune_wearables will now prevent the player from freezing in powder snow
- Added leather and goat fur to the tag by default
Fixes:
- Fixed crash when in a dimension with no floor (like the End or Aether)
- Fixed the "Home Sweet Home" advancement not being obtainable