diff --git a/src/main/java/com/ldtteam/structurize/util/BlockUtils.java b/src/main/java/com/ldtteam/structurize/util/BlockUtils.java index 86f6d165e..7ad870721 100644 --- a/src/main/java/com/ldtteam/structurize/util/BlockUtils.java +++ b/src/main/java/com/ldtteam/structurize/util/BlockUtils.java @@ -105,7 +105,7 @@ public static void checkOrInit() ForgeRegistries.BLOCKS.getValues() .stream() .filter(BlockUtils::canBlockSurviveWithoutSupport) - .filter(block -> !block.defaultBlockState().isAir() && !(block instanceof LiquidBlock) && !block.builtInRegistryHolder().is(ModTags.WEAK_SOLID_BLOCKS)) + .filter(block -> !block.defaultBlockState().canBeReplaced() && block.hasCollision && !block.defaultBlockState().isAir() && !(block instanceof LiquidBlock) && !block.builtInRegistryHolder().is(ModTags.WEAK_SOLID_BLOCKS)) .forEach(trueSolidBlocks::add); } } @@ -836,6 +836,11 @@ public static boolean isWeakSolidBlock(final BlockState blockState) return leaves.isRandomlyTicking(blockState); } + if (blockState.canBeReplaced() || !blockState.getBlock().hasCollision) + { + return false; + } + final Block block = blockState.getBlock(); return block.builtInRegistryHolder().is(ModTags.WEAK_SOLID_BLOCKS) && canBlockSurviveWithoutSupport(block); } diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index 151f82573..bfece6ef9 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -23,3 +23,5 @@ public net.minecraft.world.level.levelgen.SurfaceRules$SurfaceRule # keybinds public net.minecraft.client.KeyMapping f_90818_ # clickCount + +public net.minecraft.world.level.block.state.BlockBehaviour$Properties f_60884_ # hasCollision