From 4ddfd9549f434ce0db2eb99e9fc109198f0047c3 Mon Sep 17 00:00:00 2001 From: Julian Krings Date: Mon, 6 Jul 2026 15:43:11 +0200 Subject: [PATCH] store custom blocks in mantle directly until chunk gen --- .../java/com/volmit/iris/engine/mantle/MantleWriter.java | 9 +++++---- .../java/com/volmit/iris/util/data/IrisCustomData.java | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java b/core/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java index 391bd8eb7..11afa4d7e 100644 --- a/core/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java +++ b/core/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java @@ -35,6 +35,7 @@ import com.volmit.iris.util.documentation.ChunkCoordinates; import com.volmit.iris.util.function.Function3; import com.volmit.iris.util.mantle.Mantle; import com.volmit.iris.util.mantle.MantleChunk; +import com.volmit.iris.util.mantle.flag.MantleFlag; import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.matter.Matter; import com.volmit.iris.util.matter.MatterCavern; @@ -209,10 +210,10 @@ public class MantleWriter implements IObjectPlacer, AutoCloseable { @Override public void set(int x, int y, int z, BlockData d) { - if (d instanceof IrisCustomData data) { - setData(x, y, z, data.getBase()); - setData(x, y, z, data.getCustom()); - } else setData(x, y, z, d); + setData(x, y, z, d); + if (d instanceof IrisCustomData) { + acquireChunk(x >> 4, z >> 4).flag(MantleFlag.CUSTOM_ACTIVE, true); + } } @Override diff --git a/core/src/main/java/com/volmit/iris/util/data/IrisCustomData.java b/core/src/main/java/com/volmit/iris/util/data/IrisCustomData.java index 062cb50a1..55184b9a2 100644 --- a/core/src/main/java/com/volmit/iris/util/data/IrisCustomData.java +++ b/core/src/main/java/com/volmit/iris/util/data/IrisCustomData.java @@ -29,6 +29,7 @@ public interface IrisCustomData extends BlockData { yield false; yield base.matches(store.getBase()) && custom.equals(store.getCustom()); } + case "getAsString" -> custom.toString(); case "equals" -> { if (!(args[0] instanceof IrisCustomData store)) yield false;