diff --git a/core/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java b/core/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java index 47d173ffc..3383b5251 100644 --- a/core/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java +++ b/core/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java @@ -78,22 +78,32 @@ public class IrisSurfaceDecorator extends IrisEngineDecorator { } } - if (bd instanceof Bisected && getDimension().getFluidHeight() - 1 != height) { - bd = bd.clone(); - ((Bisected) bd).setHalf(Bisected.Half.TOP); - try { - data.set(x, height + 2, z, bd); - } catch (Throwable e) { - Iris.reportError(e); + if (decorator.isBlockDataForTop(getData())) { + if (height != getDimension().getFluidHeight() - 1) { + data.set(x, height + 1, z, decorator.getBlockData100(biome, getRng(), realX, height + 2, realZ, getData())); + data.set(x, height + 2, z, decorator.getBlockDataForTop(biome, getRng(), realX, height + 1, realZ, getData())); + } + } else { + data.set(x, height + 1, z, decorator.getBlockData100(biome, getRng(), realX, height, realZ, getData())); } - bd = bd.clone(); - ((Bisected) bd).setHalf(Bisected.Half.BOTTOM); - try { - data.set(x, height + 1, z, bd); - } catch (Throwable e) { - Iris.reportError(e); - } - } + + +// if (bd instanceof Bisected && getDimension().getFluidHeight() - 1 != height) { +// bd = bd.clone(); +// ((Bisected) bd).setHalf(Bisected.Half.TOP); +// try { +// data.set(x, height + 2, z, bd); +// } catch (Throwable e) { +// Iris.reportError(e); +// } +// bd = bd.clone(); +// ((Bisected) bd).setHalf(Bisected.Half.BOTTOM); +// try { +// data.set(x, height + 1, z, bd); +// } catch (Throwable e) { +// Iris.reportError(e); +// } +// } if (B.isAir(data.get(x, height + 1, z))) { data.set(x, height + 1, z, fixFaces(bd, x, height + 1, z)); diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisDecorator.java b/core/src/main/java/com/volmit/iris/engine/object/IrisDecorator.java index 8bdd2ec91..6a79230ca 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisDecorator.java +++ b/core/src/main/java/com/volmit/iris/engine/object/IrisDecorator.java @@ -196,6 +196,13 @@ public class IrisDecorator { return null; } + public boolean isBlockDataForTop(IrisData data) { + if (topPalette.isEmpty()) { + return false; + } + return true; + } + public KList getBlockData(IrisData data) { return blockData.aquire(() -> {