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
2.4-b02c
Fixes:
Technical Changes:
- Added a new "acclimation" mechanic:
- By spending time in hotter or colder climates, player can now adapt to more comfortably live in them
- This causes their livable temperature range to be shifted upward or downward
- The player can acclimate to live in climates up to 20°F/10°C hotter or colder than normal (configurable)
- Complete acclimation takes about 15 minutes (also configurable)
- The rate at which the player is damaged by freezing/overheating is now dependent on how fast they are freezing/overheating
- For example, if the player is in a 100°F/37°C area, they will take damage at the normal rate
- If the player is in a 400°F/200°C area, they will take damage much faster
- Wearing insulation slows down the rate of damage
- Lava now increases the player's temperature logarithmically (A.K.A. diminishing returns), as the amount of lava increases
- This means one block of lava is more effective than before, but a whole pool of lava is slightly less effective
- This should make it more fair as both a tool for warming up and a hazard to avoid
- Added new "Temperature Effects" sub-page to the config menu, which allows for individually tweaking the negative effects of freezing/overheating
- This includes new settings for changing the blur and camera sway effects from overheating
- Water droplets caused by being wet now only show on the sides of the screen to reduce obstruction
- The body temperature readout (with a thermometer) now shows a gradient rising from the bottom as the player's temperature exceeds 100/-100
Fixes:
- Fixed crash when saving configs and Tough as Nails isn't loaded
- Fixed crash when saving the player's NBT data in some cases
- Fixed ConcurrentModificationException crash when managing cached capability data
- (1.21) Fixed armor items stacking to 64
- Fixed mount configs only working for living entities
- Fixed the thermal source spread blacklist not being used for determining if the hearth is under a roof
- Fixed how smokestacks and Create fluid pipes connect to thermal sources and each other
- Fixed the chameleon's head and tail disappearing after a long time of being loaded
- Fixed bug that caused attributes to sometimes throw errors when queried
- Fixed the player's wetness not being removed after using a trident
- Fixed rounding error on the body temperature readout
Technical Changes:
- Added "logarithmic" (boolean) field to block temp JSON and KubeJS configs
- Makes a block deliver "diminishing returns" as more of them are present around the player