2019-08-31 12:15:08 +00:00
|
|
|
--- a/net/minecraft/block/FlowingFluidBlock.java
|
|
|
|
+++ b/net/minecraft/block/FlowingFluidBlock.java
|
2020-06-19 14:58:45 +00:00
|
|
|
@@ -31,10 +31,11 @@
|
2019-09-11 14:00:32 +00:00
|
|
|
|
|
|
|
public class FlowingFluidBlock extends Block implements IBucketPickupHandler {
|
|
|
|
public static final IntegerProperty field_176367_b = BlockStateProperties.field_208132_ag;
|
|
|
|
- protected final FlowingFluid field_204517_c;
|
|
|
|
+ private final FlowingFluid field_204517_c;
|
2020-06-19 14:58:45 +00:00
|
|
|
private final List<FluidState> field_212565_c;
|
|
|
|
public static final VoxelShape field_235510_c_ = Block.func_208617_a(0.0D, 0.0D, 0.0D, 16.0D, 8.0D, 16.0D);
|
2019-09-11 14:00:32 +00:00
|
|
|
|
2020-06-19 14:58:45 +00:00
|
|
|
+ @Deprecated // Forge: Use the constructor that takes a supplier
|
2020-06-30 02:33:30 +00:00
|
|
|
public FlowingFluidBlock(FlowingFluid p_i49014_1_, AbstractBlock.Properties p_i49014_2_) {
|
2019-09-11 14:00:32 +00:00
|
|
|
super(p_i49014_2_);
|
|
|
|
this.field_204517_c = p_i49014_1_;
|
2020-06-19 14:58:45 +00:00
|
|
|
@@ -47,8 +48,21 @@
|
2019-09-11 14:00:32 +00:00
|
|
|
|
|
|
|
this.field_212565_c.add(p_i49014_1_.func_207207_a(8, true));
|
|
|
|
this.func_180632_j(this.field_176227_L.func_177621_b().func_206870_a(field_176367_b, Integer.valueOf(0)));
|
|
|
|
+ fluidStateCacheInitialized = true;
|
|
|
|
+ supplier = p_i49014_1_.delegate;
|
|
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * @param supplier A fluid supplier such as {@link net.minecraftforge.fml.RegistryObject<Fluid>}
|
|
|
|
+ */
|
2020-06-19 14:58:45 +00:00
|
|
|
+ public FlowingFluidBlock(java.util.function.Supplier<? extends FlowingFluid> supplier, AbstractBlock.Properties p_i48368_1_) {
|
2019-09-11 14:00:32 +00:00
|
|
|
+ super(p_i48368_1_);
|
|
|
|
+ this.field_204517_c = null;
|
|
|
|
+ this.field_212565_c = Lists.newArrayList();
|
|
|
|
+ this.func_180632_j(this.field_176227_L.func_177621_b().func_206870_a(field_176367_b, Integer.valueOf(0)));
|
|
|
|
+ this.supplier = supplier;
|
|
|
|
+ }
|
|
|
|
+
|
2020-06-19 14:58:45 +00:00
|
|
|
public VoxelShape func_220071_b(BlockState p_220071_1_, IBlockReader p_220071_2_, BlockPos p_220071_3_, ISelectionContext p_220071_4_) {
|
|
|
|
return p_220071_4_.func_216378_a(field_235510_c_, p_220071_3_, true) && p_220071_1_.func_177229_b(field_176367_b) == 0 && p_220071_4_.func_230426_a_(p_220071_2_.func_204610_c(p_220071_3_.func_177984_a()), this.field_204517_c) ? field_235510_c_ : VoxelShapes.func_197880_a();
|
2019-09-11 14:00:32 +00:00
|
|
|
}
|
2020-06-19 14:58:45 +00:00
|
|
|
@@ -71,6 +85,7 @@
|
2019-09-11 14:00:32 +00:00
|
|
|
|
2020-06-19 14:58:45 +00:00
|
|
|
public FluidState func_204507_t(BlockState p_204507_1_) {
|
2019-09-11 14:00:32 +00:00
|
|
|
int i = p_204507_1_.func_177229_b(field_176367_b);
|
|
|
|
+ if (!fluidStateCacheInitialized) initFluidStateCache();
|
|
|
|
return this.field_212565_c.get(Math.min(i, 8));
|
|
|
|
}
|
|
|
|
|
2020-06-24 09:44:47 +00:00
|
|
|
@@ -122,13 +137,13 @@
|
|
|
|
BlockPos blockpos = p_204515_2_.func_177972_a(direction);
|
|
|
|
if (p_204515_1_.func_204610_c(blockpos).func_206884_a(FluidTags.field_206959_a)) {
|
|
|
|
Block block = p_204515_1_.func_204610_c(p_204515_2_).func_206889_d() ? Blocks.field_150343_Z : Blocks.field_150347_e;
|
|
|
|
- p_204515_1_.func_175656_a(p_204515_2_, block.func_176223_P());
|
|
|
|
+ p_204515_1_.func_175656_a(p_204515_2_, net.minecraftforge.event.ForgeEventFactory.fireFluidPlaceBlockEvent(p_204515_1_, p_204515_2_, p_204515_2_, block.func_176223_P()));
|
|
|
|
this.func_180688_d(p_204515_1_, p_204515_2_);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (flag && p_204515_1_.func_180495_p(blockpos).func_203425_a(Blocks.field_205164_gk)) {
|
|
|
|
- p_204515_1_.func_175656_a(p_204515_2_, Blocks.field_235337_cO_.func_176223_P());
|
|
|
|
+ p_204515_1_.func_175656_a(p_204515_2_, net.minecraftforge.event.ForgeEventFactory.fireFluidPlaceBlockEvent(p_204515_1_, p_204515_2_, p_204515_2_, Blocks.field_235337_cO_.func_176223_P()));
|
|
|
|
this.func_180688_d(p_204515_1_, p_204515_2_);
|
|
|
|
return false;
|
|
|
|
}
|
2020-06-19 14:58:45 +00:00
|
|
|
@@ -166,4 +181,23 @@
|
2019-09-11 14:00:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
+
|
|
|
|
+ // Forge start
|
|
|
|
+ private final java.util.function.Supplier<? extends Fluid> supplier;
|
|
|
|
+ public FlowingFluid getFluid() {
|
|
|
|
+ return (FlowingFluid)supplier.get();
|
|
|
|
+ }
|
|
|
|
+
|
2019-10-05 17:49:26 +00:00
|
|
|
+ private boolean fluidStateCacheInitialized = false;
|
|
|
|
+ protected synchronized void initFluidStateCache() {
|
2019-12-11 02:27:07 +00:00
|
|
|
+ if (fluidStateCacheInitialized == false) {
|
2019-10-05 17:49:26 +00:00
|
|
|
+ this.field_212565_c.add(getFluid().func_207204_a(false));
|
2019-09-11 14:00:32 +00:00
|
|
|
+
|
2019-10-05 17:49:26 +00:00
|
|
|
+ for (int i = 1; i < 8; ++i)
|
|
|
|
+ this.field_212565_c.add(getFluid().func_207207_a(8 - i, false));
|
2019-09-11 14:00:32 +00:00
|
|
|
+
|
2019-10-05 17:49:26 +00:00
|
|
|
+ this.field_212565_c.add(getFluid().func_207207_a(8, true));
|
|
|
|
+ fluidStateCacheInitialized = true;
|
|
|
|
+ }
|
2019-09-11 14:00:32 +00:00
|
|
|
+ }
|
|
|
|
}
|