diff --git a/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java b/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java index 4f60227ec..f58a48480 100644 --- a/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java +++ b/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java @@ -98,7 +98,7 @@ public class PlannedStructure { int zz = i.getPosition().getZ() + sz; RNG rngf = new RNG(Cache.key(xx, zz)); int offset = i.getPosition().getY() - startHeight; - int height = 0; + int height; if(i.getStructure().getStructure().getLockY() == -1) { if(i.getStructure().getStructure().getOverrideYRange() != null) { diff --git a/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java b/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java index 6ee36836d..451e84ace 100644 --- a/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java +++ b/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java @@ -190,31 +190,33 @@ public interface EngineMantle extends IObjectPlacer { @ChunkCoordinates default void generateMatter(int x, int z, boolean multicore, ChunkContext context) { - if(!getEngine().getDimension().isUseMantle()) { - return; - } - - int s = getRealRadius(); - BurstExecutor burst = burst().burst(multicore); - MantleWriter writer = getMantle().write(this, x, z, s * 2); - for(int i = -s; i <= s; i++) { - for(int j = -s; j <= s; j++) { - int xx = i + x; - int zz = j + z; - burst.queue(() -> { - IrisContext.touch(getEngine().getContext()); - getMantle().raiseFlag(xx, zz, MantleFlag.PLANNED, () -> { - MantleChunk mc = getMantle().getChunk(xx, zz); - - for(MantleComponent k : getComponents()) { - generateMantleComponent(writer, xx, zz, k, mc, context); - } - }); - }); + synchronized(this) { + if(!getEngine().getDimension().isUseMantle()) { + return; } - } - burst.complete(); + int s = getRealRadius(); + BurstExecutor burst = burst().burst(multicore); + MantleWriter writer = getMantle().write(this, x, z, s * 2); + for(int i = -s; i <= s; i++) { + for(int j = -s; j <= s; j++) { + int xx = i + x; + int zz = j + z; + burst.queue(() -> { + IrisContext.touch(getEngine().getContext()); + getMantle().raiseFlag(xx, zz, MantleFlag.PLANNED, () -> { + MantleChunk mc = getMantle().getChunk(xx, zz); + + for(MantleComponent k : getComponents()) { + generateMantleComponent(writer, xx, zz, k, mc, context); + } + }); + }); + } + } + + burst.complete(); + } } default void generateMantleComponent(MantleWriter writer, int x, int z, MantleComponent c, MantleChunk mc, ChunkContext context) { diff --git a/src/main/java/com/volmit/iris/util/mantle/Mantle.java b/src/main/java/com/volmit/iris/util/mantle/Mantle.java index 8ad73f95a..f000a0572 100644 --- a/src/main/java/com/volmit/iris/util/mantle/Mantle.java +++ b/src/main/java/com/volmit/iris/util/mantle/Mantle.java @@ -249,9 +249,9 @@ public class Mantle { */ @ChunkCoordinates public void iterateChunk(int x, int z, Class type, Consumer4 iterator) { - if(!hasTectonicPlate(x >> 5, z >> 5)) { + /*if(!hasTectonicPlate(x >> 5, z >> 5)) { return; - } + }*/ get(x >> 5, z >> 5).getOrCreate(x & 31, z & 31).iterate(type, iterator); }