diff --git a/src/datagen/java/com/github/elenterius/biomancy/datagen/tags/ModBlockTagsProvider.java b/src/datagen/java/com/github/elenterius/biomancy/datagen/tags/ModBlockTagsProvider.java index 7852e09c2..57e1c9c6f 100644 --- a/src/datagen/java/com/github/elenterius/biomancy/datagen/tags/ModBlockTagsProvider.java +++ b/src/datagen/java/com/github/elenterius/biomancy/datagen/tags/ModBlockTagsProvider.java @@ -56,6 +56,12 @@ protected void addTags() { Blocks.ROOTED_DIRT, Blocks.MUDDY_MANGROVE_ROOTS, Blocks.MUD ); + tag(ModBlockTags.ALLOW_VEINS_TO_ATTACH) + .add(Blocks.DIRT_PATH, Blocks.FARMLAND); + + tag(ModBlockTags.DISALLOW_VEINS_TO_ATTACH) + .add(ModBlocks.MALIGNANT_BLOOM.get()); + tag(BlockTags.DOORS).add(ModBlocks.FLESH_DOOR.get()).add(ModBlocks.FULL_FLESH_DOOR.get()); tag(BlockTags.TRAPDOORS).add(ModBlocks.FLESH_IRIS_DOOR.get()); diff --git a/src/main/java/com/github/elenterius/biomancy/block/veins/FleshVeinsBlock.java b/src/main/java/com/github/elenterius/biomancy/block/veins/FleshVeinsBlock.java index 9bcb441a4..c0903107a 100644 --- a/src/main/java/com/github/elenterius/biomancy/block/veins/FleshVeinsBlock.java +++ b/src/main/java/com/github/elenterius/biomancy/block/veins/FleshVeinsBlock.java @@ -316,7 +316,9 @@ protected static BlockState removeFace(BlockState state, BooleanProperty face) { } public static boolean canVeinsAttachTo(BlockGetter level, Direction direction, BlockPos pos, BlockState state) { - return state.is(ModBlockTags.PRIMORDIAL_ECO_SYSTEM_REPLACEABLE) || Block.isFaceFull(state.getBlockSupportShape(level, pos), direction.getOpposite()) || Block.isFaceFull(state.getCollisionShape(level, pos), direction.getOpposite()); + if (state.is(ModBlockTags.DISALLOW_VEINS_TO_ATTACH)) return false; + if (state.is(ModBlockTags.ALLOW_VEINS_TO_ATTACH)) return true; + return Block.isFaceFull(state.getBlockSupportShape(level, pos), direction.getOpposite()) || Block.isFaceFull(state.getCollisionShape(level, pos), direction.getOpposite()); } @Override diff --git a/src/main/java/com/github/elenterius/biomancy/init/tags/ModBlockTags.java b/src/main/java/com/github/elenterius/biomancy/init/tags/ModBlockTags.java index 05fc0fdb4..500df8128 100644 --- a/src/main/java/com/github/elenterius/biomancy/init/tags/ModBlockTags.java +++ b/src/main/java/com/github/elenterius/biomancy/init/tags/ModBlockTags.java @@ -11,6 +11,8 @@ public final class ModBlockTags { //CONVERTABLE_TO_PRIMAL_FLESH //CONVERTABLE_TO_MALIGNANT_FLESH public static final TagKey PRIMORDIAL_ECO_SYSTEM_REPLACEABLE = tag("primordial_ecosystem_replaceable"); + public static final TagKey ALLOW_VEINS_TO_ATTACH = tag("allow_veins_to_attach"); + public static final TagKey DISALLOW_VEINS_TO_ATTACH = tag("disallow_veins_to_attach"); private ModBlockTags() {}