From b26105d09459475ce996a469bb623e7fbcb57b8a Mon Sep 17 00:00:00 2001 From: MCTian-mi <35869948+MCTian-mi@users.noreply.github.com> Date: Sat, 4 Oct 2025 02:39:33 +0800 Subject: [PATCH] fix: fix surface populator only generates in one of the chunk quadrants. --- .../api/worldgen/populator/SurfaceBlockPopulator.java | 8 ++++++-- .../api/worldgen/populator/SurfaceRockPopulator.java | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/gregtech/api/worldgen/populator/SurfaceBlockPopulator.java b/src/main/java/gregtech/api/worldgen/populator/SurfaceBlockPopulator.java index 8e628808776..72663933dc0 100644 --- a/src/main/java/gregtech/api/worldgen/populator/SurfaceBlockPopulator.java +++ b/src/main/java/gregtech/api/worldgen/populator/SurfaceBlockPopulator.java @@ -57,10 +57,14 @@ public void populateChunk(World world, int chunkX, int chunkZ, Random random, Or GridEntryInfo gridEntryInfo) { int stonesCount = minIndicatorAmount + (minIndicatorAmount >= maxIndicatorAmount ? 0 : random.nextInt(maxIndicatorAmount - minIndicatorAmount)); + + int baseX = chunkX * 16 + 8; + int baseZ = chunkZ * 16 + 8; + if (stonesCount > 0 && world.getWorldType() != WorldType.FLAT) { for (int i = 0; i < stonesCount; i++) { - int randomX = chunkX * 16 + random.nextInt(8); - int randomZ = chunkZ * 16 + random.nextInt(8); + int randomX = baseX + random.nextInt(16); + int randomZ = baseZ + random.nextInt(16); boolean successful = generateSurfaceBlock(world, new BlockPos(randomX, 0, randomZ)); diff --git a/src/main/java/gregtech/api/worldgen/populator/SurfaceRockPopulator.java b/src/main/java/gregtech/api/worldgen/populator/SurfaceRockPopulator.java index 7085350c828..1382a55fa53 100644 --- a/src/main/java/gregtech/api/worldgen/populator/SurfaceRockPopulator.java +++ b/src/main/java/gregtech/api/worldgen/populator/SurfaceRockPopulator.java @@ -99,8 +99,8 @@ public void populateChunk(World world, int chunkX, int chunkZ, Random random, Or int baseZ = chunkZ * 16 + 8; for (int i = 0; i < stonesCount; i++) { - int randomX = baseX + random.nextInt(8); - int randomZ = baseZ + random.nextInt(8); + int randomX = baseX + random.nextInt(16); + int randomZ = baseZ + random.nextInt(16); generateSurfaceRock(world, new BlockPos(randomX, 0, randomZ));