diff --git a/patches/minecraft/net/minecraft/world/level/block/ChorusFlowerBlock.java.patch b/patches/minecraft/net/minecraft/world/level/block/ChorusFlowerBlock.java.patch index cc775c663b..b2dbef0364 100644 --- a/patches/minecraft/net/minecraft/world/level/block/ChorusFlowerBlock.java.patch +++ b/patches/minecraft/net/minecraft/world/level/block/ChorusFlowerBlock.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/world/level/block/ChorusFlowerBlock.java +++ b/net/minecraft/world/level/block/ChorusFlowerBlock.java -@@ -43,7 +_,7 @@ +@@ -43,11 +_,11 @@ BlockPos blockpos = p_220982_.m_7494_(); if (p_220981_.m_46859_(blockpos) && blockpos.m_123342_() < p_220981_.m_151558_()) { int i = p_220980_.m_61143_(f_51647_); @@ -9,6 +9,20 @@ boolean flag = false; boolean flag1 = false; BlockState blockstate = p_220981_.m_8055_(p_220982_.m_7495_()); +- if (blockstate.m_60713_(Blocks.f_50259_)) { ++ if (blockstate.m_60713_(Blocks.f_50259_) || blockstate.m_204336_(net.minecraftforge.common.Tags.Blocks.CHORUS_ADDITIONALLY_GROWS_ON)) { + flag = true; + } else if (blockstate.m_60713_(this.f_51648_)) { + int j = 1; +@@ -55,7 +_,7 @@ + for(int k = 0; k < 4; ++k) { + BlockState blockstate1 = p_220981_.m_8055_(p_220982_.m_6625_(j + 1)); + if (!blockstate1.m_60713_(this.f_51648_)) { +- if (blockstate1.m_60713_(Blocks.f_50259_)) { ++ if (blockstate1.m_60713_(Blocks.f_50259_) || blockstate1.m_204336_(net.minecraftforge.common.Tags.Blocks.CHORUS_ADDITIONALLY_GROWS_ON)) { + flag1 = true; + } + break; @@ -99,7 +_,7 @@ } else { this.m_51658_(p_220981_, p_220982_); @@ -18,3 +32,12 @@ } } } +@@ -134,7 +_,7 @@ + + public boolean m_7898_(BlockState p_51683_, LevelReader p_51684_, BlockPos p_51685_) { + BlockState blockstate = p_51684_.m_8055_(p_51685_.m_7495_()); +- if (!blockstate.m_60713_(this.f_51648_) && !blockstate.m_60713_(Blocks.f_50259_)) { ++ if (!blockstate.m_60713_(this.f_51648_) && !blockstate.m_60713_(Blocks.f_50259_) && !blockstate.m_204336_(net.minecraftforge.common.Tags.Blocks.CHORUS_ADDITIONALLY_GROWS_ON)) { + if (!blockstate.m_60795_()) { + return false; + } else { diff --git a/patches/minecraft/net/minecraft/world/level/block/ChorusPlantBlock.java.patch b/patches/minecraft/net/minecraft/world/level/block/ChorusPlantBlock.java.patch new file mode 100644 index 0000000000..c95f92e3ff --- /dev/null +++ b/patches/minecraft/net/minecraft/world/level/block/ChorusPlantBlock.java.patch @@ -0,0 +1,36 @@ +--- a/net/minecraft/world/level/block/ChorusPlantBlock.java ++++ b/net/minecraft/world/level/block/ChorusPlantBlock.java +@@ -30,7 +_,7 @@ + BlockState blockstate3 = p_51711_.m_8055_(p_51712_.m_122029_()); + BlockState blockstate4 = p_51711_.m_8055_(p_51712_.m_122019_()); + BlockState blockstate5 = p_51711_.m_8055_(p_51712_.m_122024_()); +- return this.m_49966_().m_61124_(f_55153_, Boolean.valueOf(blockstate.m_60713_(this) || blockstate.m_60713_(Blocks.f_50491_) || blockstate.m_60713_(Blocks.f_50259_))).m_61124_(f_55152_, Boolean.valueOf(blockstate1.m_60713_(this) || blockstate1.m_60713_(Blocks.f_50491_))).m_61124_(f_55148_, Boolean.valueOf(blockstate2.m_60713_(this) || blockstate2.m_60713_(Blocks.f_50491_))).m_61124_(f_55149_, Boolean.valueOf(blockstate3.m_60713_(this) || blockstate3.m_60713_(Blocks.f_50491_))).m_61124_(f_55150_, Boolean.valueOf(blockstate4.m_60713_(this) || blockstate4.m_60713_(Blocks.f_50491_))).m_61124_(f_55151_, Boolean.valueOf(blockstate5.m_60713_(this) || blockstate5.m_60713_(Blocks.f_50491_))); ++ return this.m_49966_().m_61124_(f_55153_, Boolean.valueOf(blockstate.m_60713_(this) || blockstate.m_60713_(Blocks.f_50491_) || blockstate.m_60713_(Blocks.f_50259_) || blockstate.m_204336_(net.minecraftforge.common.Tags.Blocks.CHORUS_ADDITIONALLY_GROWS_ON))).m_61124_(f_55152_, Boolean.valueOf(blockstate1.m_60713_(this) || blockstate1.m_60713_(Blocks.f_50491_))).m_61124_(f_55148_, Boolean.valueOf(blockstate2.m_60713_(this) || blockstate2.m_60713_(Blocks.f_50491_))).m_61124_(f_55149_, Boolean.valueOf(blockstate3.m_60713_(this) || blockstate3.m_60713_(Blocks.f_50491_))).m_61124_(f_55150_, Boolean.valueOf(blockstate4.m_60713_(this) || blockstate4.m_60713_(Blocks.f_50491_))).m_61124_(f_55151_, Boolean.valueOf(blockstate5.m_60713_(this) || blockstate5.m_60713_(Blocks.f_50491_))); + } + + public BlockState m_7417_(BlockState p_51728_, Direction p_51729_, BlockState p_51730_, LevelAccessor p_51731_, BlockPos p_51732_, BlockPos p_51733_) { +@@ -38,7 +_,7 @@ + p_51731_.m_186460_(p_51732_, this, 1); + return super.m_7417_(p_51728_, p_51729_, p_51730_, p_51731_, p_51732_, p_51733_); + } else { +- boolean flag = p_51730_.m_60713_(this) || p_51730_.m_60713_(Blocks.f_50491_) || p_51729_ == Direction.DOWN && p_51730_.m_60713_(Blocks.f_50259_); ++ boolean flag = p_51730_.m_60713_(this) || p_51730_.m_60713_(Blocks.f_50491_) || p_51729_ == Direction.DOWN && (p_51730_.m_60713_(Blocks.f_50259_) || p_51730_.m_204336_(net.minecraftforge.common.Tags.Blocks.CHORUS_ADDITIONALLY_GROWS_ON)); + return p_51728_.m_61124_(f_55154_.get(p_51729_), Boolean.valueOf(flag)); + } + } +@@ -63,13 +_,13 @@ + } + + BlockState blockstate2 = p_51725_.m_8055_(blockpos.m_7495_()); +- if (blockstate2.m_60713_(this) || blockstate2.m_60713_(Blocks.f_50259_)) { ++ if (blockstate2.m_60713_(this) || blockstate2.m_60713_(Blocks.f_50259_) || blockstate2.m_204336_(net.minecraftforge.common.Tags.Blocks.CHORUS_ADDITIONALLY_GROWS_ON)) { + return true; + } + } + } + +- return blockstate.m_60713_(this) || blockstate.m_60713_(Blocks.f_50259_); ++ return blockstate.m_60713_(this) || blockstate.m_60713_(Blocks.f_50259_) || blockstate.m_204336_(net.minecraftforge.common.Tags.Blocks.CHORUS_ADDITIONALLY_GROWS_ON); + } + + protected void m_7926_(StateDefinition.Builder p_51735_) { diff --git a/src/generated/resources/data/forge/tags/blocks/chorus_additionally_grows_on.json b/src/generated/resources/data/forge/tags/blocks/chorus_additionally_grows_on.json new file mode 100644 index 0000000000..4451697d12 --- /dev/null +++ b/src/generated/resources/data/forge/tags/blocks/chorus_additionally_grows_on.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#forge:end_stones" + ] +} \ No newline at end of file diff --git a/src/main/java/net/minecraftforge/common/Tags.java b/src/main/java/net/minecraftforge/common/Tags.java index aedba1f96d..d8246fa15f 100644 --- a/src/main/java/net/minecraftforge/common/Tags.java +++ b/src/main/java/net/minecraftforge/common/Tags.java @@ -40,6 +40,7 @@ public class Tags public static final TagKey CHESTS_ENDER = tag("chests/ender"); public static final TagKey CHESTS_TRAPPED = tag("chests/trapped"); public static final TagKey CHESTS_WOODEN = tag("chests/wooden"); + public static final TagKey CHORUS_ADDITIONALLY_GROWS_ON = tag("chorus_additionally_grows_on"); public static final TagKey COBBLESTONE = tag("cobblestone"); public static final TagKey COBBLESTONE_NORMAL = tag("cobblestone/normal"); public static final TagKey COBBLESTONE_INFESTED = tag("cobblestone/infested"); diff --git a/src/main/java/net/minecraftforge/common/data/ForgeBlockTagsProvider.java b/src/main/java/net/minecraftforge/common/data/ForgeBlockTagsProvider.java index 6ce75c6a8d..90ae71ca5d 100644 --- a/src/main/java/net/minecraftforge/common/data/ForgeBlockTagsProvider.java +++ b/src/main/java/net/minecraftforge/common/data/ForgeBlockTagsProvider.java @@ -42,6 +42,7 @@ public final class ForgeBlockTagsProvider extends BlockTagsProvider tag(CHESTS_ENDER).add(Blocks.ENDER_CHEST); tag(CHESTS_TRAPPED).add(Blocks.TRAPPED_CHEST); tag(CHESTS_WOODEN).add(Blocks.CHEST, Blocks.TRAPPED_CHEST); + tag(CHORUS_ADDITIONALLY_GROWS_ON).addTags(END_STONES); tag(COBBLESTONE).addTags(COBBLESTONE_NORMAL, COBBLESTONE_INFESTED, COBBLESTONE_MOSSY, COBBLESTONE_DEEPSLATE); tag(COBBLESTONE_NORMAL).add(Blocks.COBBLESTONE); tag(COBBLESTONE_INFESTED).add(Blocks.INFESTED_COBBLESTONE);