diff --git a/src/main/java/ru/betterend/util/BlocksHelper.java b/src/main/java/ru/betterend/util/BlocksHelper.java index 35c6ad9b..dfbac0ba 100644 --- a/src/main/java/ru/betterend/util/BlocksHelper.java +++ b/src/main/java/ru/betterend/util/BlocksHelper.java @@ -183,12 +183,18 @@ public class BlocksHelper { setWithoutUpdate(world, POS, AIR); POS.setY(POS.getY() + 1); } + continue; } - else for (Direction dir: HORIZONTAL) { - if (world.getBlockState(POS.offset(dir)).getMaterial().isReplaceable()) { + BlockState st; + for (Direction dir: HORIZONTAL) { + if ((st = world.getBlockState(POS.offset(dir))).getMaterial().isReplaceable() && st.getFluidState().isEmpty()) { world.getFluidTickScheduler().schedule(POS, state.getFluidState().getFluid(), 0); + break; } } + if ((st = world.getBlockState(POS.up())).getMaterial().isReplaceable() && st.getFluidState().isEmpty()) { + world.getFluidTickScheduler().schedule(POS, state.getFluidState().getFluid(), 0); + } } // Falling blocks else if (state.getBlock() instanceof FallingBlock) { diff --git a/src/main/java/ru/betterend/util/StructureHelper.java b/src/main/java/ru/betterend/util/StructureHelper.java index a7681e3f..d669b843 100644 --- a/src/main/java/ru/betterend/util/StructureHelper.java +++ b/src/main/java/ru/betterend/util/StructureHelper.java @@ -179,7 +179,8 @@ public class StructureHelper { } private static boolean ignore(BlockState state) { - return state.isAir() + return state.getMaterial().isReplaceable() + || !state.getFluidState().isEmpty() || state.isIn(EndTags.END_GROUND) || state.isOf(EndBlocks.ETERNAL_PEDESTAL) || state.isOf(EndBlocks.FLAVOLITE_RUNED_ETERNAL)