v0.7.6
Release v0.7.6 - Weather2 Integration, Ice Retextures & Source Refactoring
Main Features
-
Comprehensive Weather2 Remastered Integration Framework
Survival mode now dynamically adapts to storm and moving cells instead of relying on dimensionally uniform and native global variables. The block logic throughout the mod has been structurally modified to intercept changing atmospheric vectors, shifting clouds -
Dynamic Rain Collector Reset
The Rain Collector block is no longer subject to restrictive metrics from vanilla suppliers who previously halted operations based on coded regional biome parameters or elevation limits. It now connects seamlessly with active grid arrays, allowing containers to accurately retain precipitation during specialized localized rainfall under any global environment -
Reactive environmental fire extinguishing
Active bonfires now immediately detect stormfronts passing through the server thread. When exposed to localized rain cells, illuminated structures automatically shut down, instantly generating immersive bursts of directional smoke particles ('SMOKE_LARGE' and 'SMOKE_NORMAL') to visually reflect sudden outdoor environmental changes -
Mechanics of hypothermia due to hailstorms
Weather events have a direct impact on survival attributes. Being hit by physical blocks of entities generated during hailstorms now triggers damage source matching, applying instantaneous and localized drops in body temperature using a dedicated time category to simulate rapid environmental freezing -
Saltwater Ice and Purified Ice Review
To solve logic problems, the Saltwater Ice and Purified Ice blocks have received an updated texture since the new minecraft textures of the ice block were used in the past, but 1.12.2 has the old textures and has been modified a bit by me (although I'm probably going to leave it as it was)
Technical changes & Refactoring of sources
-
BlockCampfire.java:- Replaced vanilla checks 'world.isRainingAt(pos.up())' with custom queries 'Weather2Compat.isRainingAt(world, checkPos)'.
- Fixed vanilla rain extinguishing failures using scheduled updates optimized for the client side
- Injected direct weather validation backups inside the native 'neighborChanged' and 'randomTick' loops to resolve rendering conflicts with third-party weather managers (e.g. Weather2)
- Added a public and thread-safe method called 'extinguishCampfire(World, BlockPos, IBlockState)' to handle immediate state changes from external simulation tickers
-
BlockRainCollector.java:- I have completely removed the original conditional statement block 'world.getBiomeProvider().getTemperatureAtHeight(f, pos.getY()) >= 0.15F' completely inside 'tryFillFromWeather'
- Removed the configuration-based random scalar constraint ('ModConfig.server.miscellaneous.rainCollectorFillChance') within the dedicated subroutine for weather fill
- Re-engineered 'tryFillFromWeather(World, BlockPos, IBlockState)' to directly increase the 'LEVEL' integer block state based solely on active detection of the 'Weather2Compat' grid
- Fixed an issue where container filling mechanics would inadvertently crash when players interacted with the collector in Creative Mode
-
MiscHandler.java:- Added a dedicated listener targeting 'TickEvent.WorldTickEvent' limited exclusively to 'TickEvent.Phase.END' to protect the thread evaluation order
- Created an optimization gate using 'world.getTotalWorldTime() %20 != 0' to limit loop execution intervals to exactly 1 second (20 game ticks)
- Implemented a spatial scan of physical coordinates targeting an area defined by 'BlockPos.getAllInBoxMutable' within a structural radius of 16x4x16 around active player arrays to force a continuous state Sync
-
TemperatureHandler.java:- Added an isolated subscription hook 'onPlayerHurtByWeather(LivingHurtEvent)'
- Configured string matching parameters by checking 'if("hail".equals(event.getSource().getDamageType()))' to process specific damage types originating from external impacts on weather entities
- Managed core capacity modifications by passing the runtime converter string
TemporaryModifierGroupEnum.DRINK.group()instead of structural raw instances
-
CompatController.java&ModifierWet.java:- Refactored
setupCommonPostInit()to leverage an explicit reflective wrapper usingClass.forName("com.charles445.simpledifficulty.compat.mod.Weather2Compat")to safely bypass hard references on headless servers - Intercepted standard environmental temperature offsets by routing fluid check mechanics through the dynamic
Weather2Compatlocalization layer
- Refactored
-
Asset Refactoring & Legacy Preservation:
- Retained the previous modern textures in the source and final build outputs under the altered filenames
saltwater_ice_old.pngandpurifiedwater_ice_old.pngfor asset archiving
- Retained the previous modern textures in the source and final build outputs under the altered filenames
-
Performance & Build Architecture Corrections:
- Optimized block updates across both functional containers by enforcing state flag 3, ensuring instant dynamic lighting updates and comparator redstone signal recalculations
- Cleared compiler conflicts by dropping the redundant, duplicate
TemperatureHandler.javafile structure inside theapi/temperature/directory tree
Download Guide
- Correct file:
SimpleDifficulty-1.12.2-0.7.6.jar - Developer files: Avoid files ending in
-api.jaror-sources.jar.