61 lines
3.5 KiB
Diff
61 lines
3.5 KiB
Diff
--- a/net/minecraft/block/RedstoneWireBlock.java
|
|
+++ b/net/minecraft/block/RedstoneWireBlock.java
|
|
@@ -123,7 +123,7 @@
|
|
BlockState blockstate1 = p_208074_1_.func_180495_p(blockpos1);
|
|
if (!blockstate1.func_215686_e(p_208074_1_, blockpos1)) {
|
|
boolean flag = blockstate.func_224755_d(p_208074_1_, blockpos, Direction.UP) || blockstate.func_177230_c() == Blocks.field_150438_bZ;
|
|
- if (flag && func_176346_d(p_208074_1_.func_180495_p(blockpos.func_177984_a()))) {
|
|
+ if (flag && canConnectTo(p_208074_1_.func_180495_p(blockpos.func_177984_a()), p_208074_1_, blockpos.func_177984_a(), null)) {
|
|
if (blockstate.func_224756_o(p_208074_1_, blockpos)) {
|
|
return RedstoneSide.UP;
|
|
}
|
|
@@ -132,7 +132,7 @@
|
|
}
|
|
}
|
|
|
|
- return !func_176343_a(blockstate, p_208074_3_) && (blockstate.func_215686_e(p_208074_1_, blockpos) || !func_176346_d(p_208074_1_.func_180495_p(blockpos.func_177977_b()))) ? RedstoneSide.NONE : RedstoneSide.SIDE;
|
|
+ return !canConnectTo(blockstate, p_208074_1_, blockpos, p_208074_3_) && (blockstate.func_215686_e(p_208074_1_, blockpos) || !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_196260_a(BlockState p_196260_1_, IWorldReader p_196260_2_, BlockPos p_196260_3_) {
|
|
@@ -315,26 +315,18 @@
|
|
boolean flag = blockstate.func_215686_e(p_176339_1_, blockpos);
|
|
BlockPos blockpos1 = p_176339_2_.func_177984_a();
|
|
boolean flag1 = p_176339_1_.func_180495_p(blockpos1).func_215686_e(p_176339_1_, blockpos1);
|
|
- 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(blockstate, p_176339_3_)) {
|
|
+ } else if (canConnectTo(blockstate, p_176339_1_, blockpos, p_176339_3_)) {
|
|
return true;
|
|
} else if (blockstate.func_177230_c() == Blocks.field_196633_cV && blockstate.func_177229_b(RedstoneDiodeBlock.field_196348_c) && blockstate.func_177229_b(RedstoneDiodeBlock.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(BlockState p_176346_0_) {
|
|
- return func_176343_a(p_176346_0_, (Direction)null);
|
|
- }
|
|
-
|
|
- protected static boolean func_176343_a(BlockState p_176343_0_, @Nullable Direction p_176343_1_) {
|
|
+ protected static boolean canConnectTo(BlockState p_176343_0_, IBlockReader world, BlockPos pos, @Nullable Direction p_176343_1_) {
|
|
Block block = p_176343_0_.func_177230_c();
|
|
if (block == Blocks.field_150488_af) {
|
|
return true;
|
|
@@ -344,7 +336,7 @@
|
|
} else if (Blocks.field_190976_dk == p_176343_0_.func_177230_c()) {
|
|
return p_176343_1_ == p_176343_0_.func_177229_b(ObserverBlock.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;
|
|
}
|
|
}
|
|
|