33 lines
2.6 KiB
Diff
33 lines
2.6 KiB
Diff
--- a/net/minecraft/block/StemBlock.java
|
|
+++ b/net/minecraft/block/StemBlock.java
|
|
@@ -39,22 +39,24 @@
|
|
|
|
public void func_196267_b(BlockState p_196267_1_, World p_196267_2_, BlockPos p_196267_3_, Random p_196267_4_) {
|
|
super.func_196267_b(p_196267_1_, p_196267_2_, p_196267_3_, p_196267_4_);
|
|
+ if (!p_196267_2_.isAreaLoaded(p_196267_3_, 1)) return; // Forge: prevent loading unloaded chunks when checking neighbor's light
|
|
if (p_196267_2_.func_201669_a(p_196267_3_, 0) >= 9) {
|
|
float f = CropsBlock.func_180672_a(this, p_196267_2_, p_196267_3_);
|
|
- if (p_196267_4_.nextInt((int)(25.0F / f) + 1) == 0) {
|
|
+ if (net.minecraftforge.common.ForgeHooks.onCropsGrowPre(p_196267_2_, p_196267_3_, p_196267_1_, p_196267_4_.nextInt((int)(25.0F / f) + 1) == 0)) {
|
|
int i = p_196267_1_.func_177229_b(field_176484_a);
|
|
if (i < 7) {
|
|
- p_196267_1_ = p_196267_1_.func_206870_a(field_176484_a, Integer.valueOf(i + 1));
|
|
- p_196267_2_.func_180501_a(p_196267_3_, p_196267_1_, 2);
|
|
+ p_196267_2_.func_180501_a(p_196267_3_, p_196267_1_.func_206870_a(field_176484_a, Integer.valueOf(i + 1)), 2);
|
|
} else {
|
|
Direction direction = Direction.Plane.HORIZONTAL.func_179518_a(p_196267_4_);
|
|
BlockPos blockpos = p_196267_3_.func_177972_a(direction);
|
|
- Block block = p_196267_2_.func_180495_p(blockpos.func_177977_b()).func_177230_c();
|
|
- if (p_196267_2_.func_180495_p(blockpos).func_196958_f() && (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)) {
|
|
+ BlockState soil = p_196267_2_.func_180495_p(blockpos.func_177977_b());
|
|
+ Block block = soil.func_177230_c();
|
|
+ if (p_196267_2_.func_180495_p(blockpos).isAir(p_196267_2_, blockpos) && (soil.canSustainPlant(p_196267_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_196267_2_.func_175656_a(blockpos, this.field_149877_a.func_176223_P());
|
|
p_196267_2_.func_175656_a(p_196267_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_196267_2_, p_196267_3_, p_196267_1_);
|
|
}
|
|
|
|
}
|