diff --git a/src/main/java/com/volmit/iris/core/nms/v19_1/NMSBinding19_1.java b/src/main/java/com/volmit/iris/core/nms/v19_1/NMSBinding19_1.java index 2e2713488..1157b2645 100644 --- a/src/main/java/com/volmit/iris/core/nms/v19_1/NMSBinding19_1.java +++ b/src/main/java/com/volmit/iris/core/nms/v19_1/NMSBinding19_1.java @@ -344,44 +344,12 @@ public class NMSBinding19_1 implements INMSBinding { ChunkAccess s = (ChunkAccess) getFieldForBiomeStorage(chunk).get(chunk); Holder biome = (Holder) somethingVeryDirty; s.setBiome(x, y, z, biome); - /*int l = QuartPos.fromBlock(s.getMinBuildHeight()); - int i1 = l + QuartPos.fromBlock(s.getHeight()) - 1; - PalettedContainer> palette = getPalette(s, s.getSectionIndex(QuartPos.toBlock(Mth.clamp(y, l, i1)))); - int index = getPaletteIndex(x, y, z, s, palette); - int data = getPaletteDataId(palette, biome); - setPaletteData(palette, index, data);*/ } catch(IllegalAccessException e) { Iris.reportError(e); e.printStackTrace(); } } - private PalettedContainer> getPalette(ChunkAccess ca, int index) { - LevelChunkSection[] sections = fieldForClass(LevelChunkSection[].class, ChunkAccess.class, ca); - return fieldForClass(PalettedContainer.class, LevelChunkSection.class, sections[index]); - } - - private int getPaletteIndex(int x, int y, int z, ChunkAccess s, PalettedContainer palette) { - int l = QuartPos.fromBlock(s.getMinBuildHeight()); - int i1 = l + QuartPos.fromBlock(s.getHeight()) - 1; - int j1 = Mth.clamp(y, l, i1); - return fieldForClass(PalettedContainer.Strategy.class, PalettedContainer.class, palette).getIndex(x & 3, j1 & 3, z & 3); - } - - private > int getPaletteDataId(PalettedContainer palette, T data) throws ClassNotFoundException { - Class dataType = getClassType(PalettedContainer.class, 1); - Object paletteData = fieldFor(dataType, palette); - Palette fuckinFinally = fieldForClass(Palette.class,dataType, paletteData); - return fuckinFinally.idFor(data); - } - - private void setPaletteData(PalettedContainer palette, int index, int data) throws ClassNotFoundException { - Class dataType = getClassType(PalettedContainer.class, 1); - Object paletteData = fieldFor(dataType, palette); - BitStorage storage = fieldForClass(BitStorage.class, dataType, paletteData); - storage.set(index, data); - } - private Field getFieldForBiomeStorage(Object storage) { Field f = biomeStorageCache; diff --git a/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java b/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java index e64d17586..79a32a058 100644 --- a/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java +++ b/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java @@ -27,6 +27,7 @@ import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisBiomeCustom; import com.volmit.iris.util.documentation.BlockCoordinates; import com.volmit.iris.util.hunk.Hunk; +import com.volmit.iris.util.hunk.view.BiomeGridHunkHolder; import com.volmit.iris.util.hunk.view.BiomeGridHunkView; import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.parallel.BurstExecutor; @@ -56,10 +57,14 @@ public class IrisBiomeActuator extends EngineAssignedActuator { hh.forceBiomeBaseInto(x, y, z, bb); } return true; - } - - else{ - System.out.println("H is not a BiomeGridHunkView!") + } else if(h instanceof BiomeGridHunkHolder hh) { + ChunkGenerator.BiomeGrid g = hh.getChunk(); + if(g instanceof TerrainChunk) { + ((TerrainChunk) g).getBiomeBaseInjector().setBiome(x, y, z, bb); + } else { + hh.forceBiomeBaseInto(x, y, z, bb); + } + return true; } } catch(Throwable e) { e.printStackTrace();