Skip to content

[1.18.2] Dimension snow/ice material overrides do not convert loaded weather blocks #267

Description

@SkyBlade1978

Environment

  • Minecraft: 1.18.2
  • Forge: CakeWorld's configured 1.18.2 test runtime
  • OreSpawn candidate: 4.0.12.118021
  • OreSpawn commit: 7c82ecc844ae9d241a108f4417c6c3b5b0bc29a2
  • OreSpawn JAR SHA-256: 0478D611A96020DAAE794B72E64EFD677B49A5B63BCB6179330D63317B16D6A6
  • CakeWorld branch/commit: master-1.18.2 / 0a3fb0dd6788d2fcad78f82d20154a772ff93d05
  • CakeWorld provider revision: 57

Defect

Dimension snow_block and ice_block overrides are accepted and baked, but vanilla Snow and Ice placed in an exposed loaded chunk remain unchanged after OreSpawn's public Forge ChunkEvent.Load route runs.

The server log confirms that the CakeWorld provider is active and the dynamic Overworld bake contains 1 material overrides, so this is not a provider-discovery or configuration-validation failure.

Reproduction

CakeWorld contains a focused black-box GameTest:

https://github.com/SkyBlade1978/CakeWorld/blob/master-1.18.2/src/main/java/com/mcmoddev/cakeworld/gametest/WeatherMaterialGameTests.java

It:

  1. Starts a server with CakeWorld's normal cakeworld:edible_world provider.
  2. Places exposed vanilla Stone supports with vanilla Snow and Ice above them in a loaded Overworld chunk.
  3. Posts the public Forge ChunkEvent.Load used by OreSpawn's weather-material converter.
  4. Checks for CakeWorld Icing Layer and Frozen Lemonade respectively.

Run from the CakeWorld checkout:

.\gradlew.bat runGameTestServer --no-daemon `
  "-PcakeworldLocalOreSpawnJar=D:\MinecraftMineralogy\OS118\OreSpawn\build\libs\OreSpawn-4.0.12.118021.jar" `
  -PcakeworldFreshWorldgenRuntime=true `
  -PcakeworldFreshWorldgenRunDirectory=run-os412-weather-materials-r1 `
  "-PcakeworldGameTestNamespaces=cakeworld_weather_materials"

Actual result

The required GameTest fails:

configuredsnowandicereplacevanillaweatherproducts failed!
OreSpawn weather conversion failed: snow=false, ice=false,
snowState=Block{minecraft:snow}[layers=1], iceState=Block{minecraft:ice}

Both blocks remain vanilla.

The same log records:

CakeWorld OreSpawn provider revision 57 is active
Baked Overworld ... 3 palettes, 18 surfaces, and 1 material overrides

Expected result

With CakeWorld's configured dimension material overrides:

  • minecraft:snow should convert to cakeworld:icing_layer
  • minecraft:ice should convert to cakeworld:frozen_lemonade

Likely investigation area

WorldMaterialWeather.onChunkLoad / convertChunk receives the event, obtains the baked dimension manager, and scans the heightmap column. The configuration is present, so the remaining seam appears to be event/heightmap scanning or replacement eligibility rather than provider parsing.

Suggested acceptance coverage

  • The linked focused black-box GameTest passes.
  • Naturally generated weather products convert in a fresh world and still behave correctly after save/reload.
  • Dimensions without a configured override retain vanilla Snow/Ice.
  • Conversion remains limited to weather products and does not broadly rewrite player or structure blocks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions