diff --git a/src/main/java/com/volmit/iris/engine/IrisWorldManager.java b/src/main/java/com/volmit/iris/engine/IrisWorldManager.java index 0b0cd93f3..27b1d1140 100644 --- a/src/main/java/com/volmit/iris/engine/IrisWorldManager.java +++ b/src/main/java/com/volmit/iris/engine/IrisWorldManager.java @@ -205,11 +205,12 @@ public class IrisWorldManager extends EngineAssignedWorldManager { J.a(() -> getMantle().raiseFlag(finalX, finalZ, MantleFlag.INITIAL_SPAWNED_MARKER, () -> { J.a(() -> spawnIn(cx, true), RNG.r.i(5, 200)); - getSpawnersFromMarkers(cx).forEach((block, spawners) -> { + getSpawnersFromMarkers(cx).forEach((blockf, spawners) -> { if(spawners.isEmpty()) { return; } + IrisPosition block = new IrisPosition(blockf.getX(), blockf.getY() + getEngine().getWorld().minHeight(), blockf.getZ()); IrisSpawner s = new KList<>(spawners).getRandom(); spawn(block, s, true); }); @@ -321,11 +322,12 @@ public class IrisWorldManager extends EngineAssignedWorldManager { //@done if(IrisSettings.get().getWorld().isMarkerEntitySpawningSystem()) { - getSpawnersFromMarkers(c).forEach((block, spawners) -> { + getSpawnersFromMarkers(c).forEach((blockf, spawners) -> { if(spawners.isEmpty()) { return; } + IrisPosition block = new IrisPosition(blockf.getX(), blockf.getY() + getEngine().getWorld().minHeight(), blockf.getZ()); IrisSpawner s = new KList<>(spawners).getRandom(); spawn(block, s, false); J.a(() -> getMantle().raiseFlag(c.getX(), c.getZ(), MantleFlag.INITIAL_SPAWNED_MARKER, diff --git a/src/main/java/com/volmit/iris/engine/framework/Engine.java b/src/main/java/com/volmit/iris/engine/framework/Engine.java index 7e56d208d..b65fce4c5 100644 --- a/src/main/java/com/volmit/iris/engine/framework/Engine.java +++ b/src/main/java/com/volmit/iris/engine/framework/Engine.java @@ -280,7 +280,8 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat PrecisionStopwatch p = PrecisionStopwatch.start(); KMap updates = new KMap<>(); RNG r = new RNG(Cache.key(c.getX(), c.getZ())); - getMantle().getMantle().iterateChunk(c.getX(), c.getZ(), MatterCavern.class, (x, y, z, v) -> { + getMantle().getMantle().iterateChunk(c.getX(), c.getZ(), MatterCavern.class, (x, yf, z, v) -> { + int y = yf + getWorld().minHeight(); if(!B.isFluid(c.getBlock(x & 15, y, z & 15).getBlockData())) { return; } @@ -309,7 +310,8 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat }); updates.forEach((k, v) -> update(Cache.keyX(k), v, Cache.keyZ(k), c, r)); - getMantle().getMantle().iterateChunk(c.getX(), c.getZ(), MatterUpdate.class, (x, y, z, v) -> { + getMantle().getMantle().iterateChunk(c.getX(), c.getZ(), MatterUpdate.class, (x, yf, z, v) -> { + int y = yf + getWorld().minHeight(); if(v != null && v.isUpdate()) { int vx = x & 15; int vz = z & 15;