ForgePatch/patches/minecraft/net/minecraft/block/StemBlock.java.patch

43 lines
2.8 KiB
Diff

--- a/net/minecraft/block/StemBlock.java
+++ b/net/minecraft/block/StemBlock.java
@@ -37,22 +37,24 @@
}
public void func_225542_b_(BlockState p_225542_1_, ServerWorld p_225542_2_, BlockPos p_225542_3_, Random p_225542_4_) {
+ if (!p_225542_2_.isAreaLoaded(p_225542_3_, 1)) return; // Forge: prevent loading unloaded chunks when checking neighbor's light
if (p_225542_2_.func_226659_b_(p_225542_3_, 0) >= 9) {
float f = CropsBlock.func_180672_a(this, p_225542_2_, p_225542_3_);
- if (p_225542_4_.nextInt((int)(25.0F / f) + 1) == 0) {
+ if (net.minecraftforge.common.ForgeHooks.onCropsGrowPre(p_225542_2_, p_225542_3_, p_225542_1_, p_225542_4_.nextInt((int)(25.0F / f) + 1) == 0)) {
int i = p_225542_1_.func_177229_b(field_176484_a);
if (i < 7) {
- p_225542_1_ = p_225542_1_.func_206870_a(field_176484_a, Integer.valueOf(i + 1));
- p_225542_2_.func_180501_a(p_225542_3_, p_225542_1_, 2);
+ p_225542_2_.func_180501_a(p_225542_3_, p_225542_1_.func_206870_a(field_176484_a, Integer.valueOf(i + 1)), 2);
} else {
Direction direction = Direction.Plane.HORIZONTAL.func_179518_a(p_225542_4_);
BlockPos blockpos = p_225542_3_.func_177972_a(direction);
BlockState blockstate = p_225542_2_.func_180495_p(blockpos.func_177977_b());
- if (p_225542_2_.func_180495_p(blockpos).func_196958_f() && (blockstate.func_203425_a(Blocks.field_150458_ak) || blockstate.func_203425_a(Blocks.field_150346_d) || blockstate.func_203425_a(Blocks.field_196660_k) || blockstate.func_203425_a(Blocks.field_196661_l) || blockstate.func_203425_a(Blocks.field_196658_i))) {
+ Block block = blockstate.func_177230_c();
+ if (p_225542_2_.func_175623_d(blockpos) && (blockstate.canSustainPlant(p_225542_2_, blockpos.func_177977_b(), Direction.UP, this) || block == Blocks.field_150458_ak || block == Blocks.field_150346_d || block == Blocks.field_196660_k || block == Blocks.field_196661_l || block == Blocks.field_196658_i)) {
p_225542_2_.func_175656_a(blockpos, this.field_149877_a.func_176223_P());
p_225542_2_.func_175656_a(p_225542_3_, this.field_149877_a.func_196523_e().func_176223_P().func_206870_a(HorizontalBlock.field_185512_D, direction));
}
}
+ net.minecraftforge.common.ForgeHooks.onCropsGrowPost(p_225542_2_, p_225542_3_, p_225542_1_);
}
}
@@ -97,4 +99,10 @@
public StemGrownBlock func_208486_d() {
return this.field_149877_a;
}
+
+ //FORGE START
+ @Override
+ public net.minecraftforge.common.PlantType getPlantType(IBlockReader world, BlockPos pos) {
+ return net.minecraftforge.common.PlantType.CROP;
+ }
}