72 lines
4.4 KiB
Diff
72 lines
4.4 KiB
Diff
--- a/net/minecraft/block/BlockRedstoneWire.java
|
|
+++ b/net/minecraft/block/BlockRedstoneWire.java
|
|
@@ -124,8 +124,8 @@
|
|
IBlockState iblockstate = p_208074_1_.func_180495_p(p_208074_2_.func_177972_a(p_208074_3_));
|
|
IBlockState iblockstate1 = p_208074_1_.func_180495_p(p_208074_2_.func_177984_a());
|
|
if (!iblockstate1.func_185915_l()) {
|
|
- boolean flag = p_208074_1_.func_180495_p(blockpos).func_185896_q() || p_208074_1_.func_180495_p(blockpos).func_177230_c() == Blocks.field_150426_aN;
|
|
- if (flag && func_176346_d(p_208074_1_.func_180495_p(blockpos.func_177984_a()))) {
|
|
+ boolean flag = iblockstate.func_193401_d(p_208074_1_, blockpos, EnumFacing.UP) == BlockFaceShape.SOLID || iblockstate.func_177230_c() == Blocks.field_150426_aN;
|
|
+ if (flag && canConnectTo(p_208074_1_.func_180495_p(blockpos.func_177984_a()), p_208074_1_, blockpos.func_177984_a(), null)) {
|
|
if (iblockstate.func_185898_k()) {
|
|
return RedstoneSide.UP;
|
|
}
|
|
@@ -134,7 +134,7 @@
|
|
}
|
|
}
|
|
|
|
- return !func_176343_a(p_208074_1_.func_180495_p(blockpos), p_208074_3_) && (iblockstate.func_185915_l() || !func_176346_d(p_208074_1_.func_180495_p(blockpos.func_177977_b()))) ? RedstoneSide.NONE : RedstoneSide.SIDE;
|
|
+ return !canConnectTo(p_208074_1_.func_180495_p(blockpos), p_208074_1_, blockpos, p_208074_3_) && (iblockstate.func_185915_l() || !canConnectTo(p_208074_1_.func_180495_p(blockpos.func_177977_b()), p_208074_1_, blockpos.func_177977_b(), null)) ? RedstoneSide.NONE : RedstoneSide.SIDE;
|
|
}
|
|
|
|
public boolean func_149686_d(IBlockState p_149686_1_) {
|
|
@@ -143,7 +143,7 @@
|
|
|
|
public boolean func_196260_a(IBlockState p_196260_1_, IWorldReaderBase p_196260_2_, BlockPos p_196260_3_) {
|
|
IBlockState iblockstate = p_196260_2_.func_180495_p(p_196260_3_.func_177977_b());
|
|
- return iblockstate.func_185896_q() || iblockstate.func_177230_c() == Blocks.field_150426_aN;
|
|
+ return iblockstate.func_185896_q() || iblockstate.func_177230_c() == Blocks.field_150426_aN || iblockstate.func_193401_d(p_196260_2_, p_196260_3_.func_177977_b(), EnumFacing.UP) == BlockFaceShape.SOLID;
|
|
}
|
|
|
|
private IBlockState func_176338_e(World p_176338_1_, BlockPos p_176338_2_, IBlockState p_176338_3_) {
|
|
@@ -338,26 +338,18 @@
|
|
IBlockState iblockstate = p_176339_1_.func_180495_p(blockpos);
|
|
boolean flag = iblockstate.func_185915_l();
|
|
boolean flag1 = p_176339_1_.func_180495_p(p_176339_2_.func_177984_a()).func_185915_l();
|
|
- if (!flag1 && flag && func_176340_e(p_176339_1_, blockpos.func_177984_a())) {
|
|
+ if (!flag1 && flag && canConnectTo(p_176339_1_.func_180495_p(blockpos.func_177984_a()), p_176339_1_, blockpos.func_177984_a(), null)) {
|
|
return true;
|
|
- } else if (func_176343_a(iblockstate, p_176339_3_)) {
|
|
+ } else if (canConnectTo(iblockstate, p_176339_1_, blockpos, p_176339_3_)) {
|
|
return true;
|
|
} else if (iblockstate.func_177230_c() == Blocks.field_196633_cV && iblockstate.func_177229_b(BlockRedstoneDiode.field_196348_c) && iblockstate.func_177229_b(BlockRedstoneDiode.field_185512_D) == p_176339_3_) {
|
|
return true;
|
|
} else {
|
|
- return !flag && func_176340_e(p_176339_1_, blockpos.func_177977_b());
|
|
+ return !flag && canConnectTo(p_176339_1_.func_180495_p(blockpos.func_177977_b()), p_176339_1_, blockpos.func_177977_b(), null);
|
|
}
|
|
}
|
|
|
|
- protected static boolean func_176340_e(IBlockReader p_176340_0_, BlockPos p_176340_1_) {
|
|
- return func_176346_d(p_176340_0_.func_180495_p(p_176340_1_));
|
|
- }
|
|
-
|
|
- protected static boolean func_176346_d(IBlockState p_176346_0_) {
|
|
- return func_176343_a(p_176346_0_, (EnumFacing)null);
|
|
- }
|
|
-
|
|
- protected static boolean func_176343_a(IBlockState p_176343_0_, @Nullable EnumFacing p_176343_1_) {
|
|
+ protected boolean canConnectTo(IBlockState p_176343_0_, IBlockReader world, BlockPos pos, @Nullable EnumFacing p_176343_1_) {
|
|
Block block = p_176343_0_.func_177230_c();
|
|
if (block == Blocks.field_150488_af) {
|
|
return true;
|
|
@@ -367,7 +359,7 @@
|
|
} else if (Blocks.field_190976_dk == p_176343_0_.func_177230_c()) {
|
|
return p_176343_1_ == p_176343_0_.func_177229_b(BlockObserver.field_176387_N);
|
|
} else {
|
|
- return p_176343_0_.func_185897_m() && p_176343_1_ != null;
|
|
+ return p_176343_0_.canConnectRedstone(world, pos, p_176343_1_) && p_176343_1_ != null;
|
|
}
|
|
}
|
|
|