From 3c759f3b01960833801a3939fd48e04720267add Mon Sep 17 00:00:00 2001 From: Vatuu <21113232+Vatuu@users.noreply.github.com> Date: Sat, 13 Aug 2022 00:37:42 +0200 Subject: [PATCH] Kinda fixed vine issues with PAINT. --- src/main/java/com/volmit/iris/engine/object/IrisObject.java | 6 ++++-- src/main/java/com/volmit/iris/util/data/B.java | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObject.java b/src/main/java/com/volmit/iris/engine/object/IrisObject.java index 1a7e65ffd..349a0bc29 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisObject.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisObject.java @@ -781,7 +781,7 @@ public class IrisObject extends IrisRegistrant { zz += config.warp(rng, i.getZ() + z, i.getY() + y, i.getX() + x, getLoader()); } - if(yv < 0 && (config.getMode().equals(ObjectPlaceMode.PAINT))) { + if(yv < 0 && (config.getMode().equals(ObjectPlaceMode.PAINT)) && !B.isVineBlock(data)) { yy = (int) Math.round(i.getY()) + Math.floorDiv(h, 2) + placer.getHighest(xx, zz, getLoader(), config.isUnderwater()); } @@ -823,7 +823,9 @@ public class IrisObject extends IrisRegistrant { placer.getEngine().getMantle().getMantle().set(xx, yy, zz, new MatterMarker(markers.get(g))); } - if(!data.getMaterial().equals(Material.AIR) && !data.getMaterial().equals(Material.CAVE_AIR)) { + boolean wouldReplace = B.isSolid(placer.get(xx, yy, zz)) && B.isVineBlock(data); + + if(!data.getMaterial().equals(Material.AIR) && !data.getMaterial().equals(Material.CAVE_AIR) && !wouldReplace) { placer.set(xx, yy, zz, data); if(tile != null) { placer.setTile(xx, yy, zz, tile); diff --git a/src/main/java/com/volmit/iris/util/data/B.java b/src/main/java/com/volmit/iris/util/data/B.java index 728977a7f..f74116f1f 100644 --- a/src/main/java/com/volmit/iris/util/data/B.java +++ b/src/main/java/com/volmit/iris/util/data/B.java @@ -405,6 +405,8 @@ public class B { } public static boolean isSolid(BlockData mat) { + if(mat == null) + return false; return mat.getMaterial().isSolid(); }