Fix some locations where State Sensitive Materials were not used. Closes #4474

This commit is contained in:
LexManos 2017-10-31 10:40:38 -07:00
parent 8d938660e7
commit 57e6559fa4
5 changed files with 54 additions and 3 deletions

View File

@ -18,3 +18,12 @@
{
;
}
@@ -95,7 +95,7 @@
{
BlockPos blockpos = p_180684_2_.func_177982_a(p_180684_1_.field_73012_v.nextInt(16) - p_180684_1_.field_73012_v.nextInt(16), p_180684_1_.field_73012_v.nextInt(8) - p_180684_1_.field_73012_v.nextInt(8), p_180684_1_.field_73012_v.nextInt(16) - p_180684_1_.field_73012_v.nextInt(16));
- if (p_180684_1_.func_180495_p(blockpos).func_177230_c().field_149764_J == Material.field_151579_a)
+ if (p_180684_1_.func_175623_d(blockpos))
{
if (p_180684_1_.field_72995_K)
{

View File

@ -17,3 +17,18 @@
p_176375_3_.func_177230_c().func_176226_b(p_176375_1_, p_176375_2_, p_176375_3_, 0);
}
}
@@ -254,11 +255,12 @@
private boolean func_176372_g(World p_176372_1_, BlockPos p_176372_2_, IBlockState p_176372_3_)
{
- Block block = p_176372_1_.func_180495_p(p_176372_2_).func_177230_c();
+ Block block = p_176372_3_.func_177230_c(); //Forge: state must be valid for position
+ Material mat = p_176372_3_.func_185904_a();
if (!(block instanceof BlockDoor) && block != Blocks.field_150472_an && block != Blocks.field_150468_ap && block != Blocks.field_150436_aH)
{
- return block.field_149764_J != Material.field_151567_E && block.field_149764_J != Material.field_189963_J ? block.field_149764_J.func_76230_c() : true;
+ return mat != Material.field_151567_E && mat != Material.field_189963_J ? mat.func_76230_c() : true;
}
else
{

View File

@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockStaticLiquid.java
+++ ../src-work/minecraft/net/minecraft/block/BlockStaticLiquid.java
@@ -52,7 +52,7 @@
@@ -52,14 +52,14 @@
{
blockpos = blockpos.func_177982_a(p_180650_4_.nextInt(3) - 1, 1, p_180650_4_.nextInt(3) - 1);
@ -9,3 +9,21 @@
{
return;
}
- Block block = p_180650_1_.func_180495_p(blockpos).func_177230_c();
+ IBlockState block = p_180650_1_.func_180495_p(blockpos);
- if (block.field_149764_J == Material.field_151579_a)
+ if (block.func_177230_c().isAir(block, p_180650_1_, blockpos))
{
if (this.func_176369_e(p_180650_1_, blockpos))
{
@@ -67,7 +67,7 @@
return;
}
}
- else if (block.field_149764_J.func_76230_c())
+ else if (block.func_185904_a().func_76230_c())
{
return;
}

View File

@ -9,6 +9,15 @@
{
public static final PropertyBool field_176277_a = PropertyBool.func_177716_a("up");
public static final PropertyBool field_176273_b = PropertyBool.func_177716_a("north");
@@ -244,7 +244,7 @@
IBlockState iblockstate3 = p_180650_1_.func_180495_p(blockpos4);
Block block1 = iblockstate3.func_177230_c();
- if (block1.field_149764_J == Material.field_151579_a)
+ if (block1.isAir(iblockstate3, p_180650_1_, blockpos4))
{
EnumFacing enumfacing3 = enumfacing1.func_176746_e();
EnumFacing enumfacing4 = enumfacing1.func_176735_f();
@@ -459,7 +459,17 @@
return i;

View File

@ -215,7 +215,7 @@
i = MathHelper.func_76125_a(i, 0, this.field_76645_j.length - 1);
j = MathHelper.func_76125_a(j, 0, this.field_76645_j.length - 1);
@@ -997,6 +100,8 @@
@@ -997,6 +1000,8 @@
protected void func_186034_a(IChunkGenerator p_186034_1_)
{
@ -300,7 +300,7 @@
{
this.field_76637_e.func_175664_x(blockpos$mutableblockpos);
}
@@ -1489,4 +1509,34 @@
@@ -1489,4 +1509,52 @@
QUEUED,
CHECK;
}