Skip to content

v0.7.6

Choose a tag to compare

@Onyx-i7 Onyx-i7 released this 07 Jun 22:27

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 stringTemporaryModifierGroupEnum.DRINK.group() instead of structural raw instances
  • CompatController.java & ModifierWet.java:

    • Refactored setupCommonPostInit() to leverage an explicit reflective wrapper using Class.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 Weather2Compat localization layer
  • Asset Refactoring & Legacy Preservation:

    • Retained the previous modern textures in the source and final build outputs under the altered filenames saltwater_ice_old.png and purifiedwater_ice_old.png for asset archiving
  • 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.java file structure inside the api/temperature/ directory tree

Download Guide

  • Correct file: SimpleDifficulty-1.12.2-0.7.6.jar
  • Developer files: Avoid files ending in -api.jar or -sources.jar.