[MC-8645] Redstone wire receiving level 1 power from a block, pointing at another block with wire on it will not power that block Created: 29/Jan/13 Updated: 29/Apr/20 Resolved: 29/Apr/20 |
|
| Status: | Resolved |
| Project: | Minecraft: Java Edition |
| Component/s: | None |
| Affects Version/s: | Snapshot 13w03a, Snapshot 13w04a, Snapshot 13w09c, Snapshot 13w10a, Minecraft 1.5, Snapshot 13w11a, Minecraft 1.5.1, Minecraft 1.6.4, Minecraft 13w42b, Minecraft 13w43a, Minecraft 1.7.1, Minecraft 1.7.2, Minecraft 1.7.4, Minecraft 14w08a, Minecraft 1.8.2-pre4, Minecraft 1.8.2-pre5, Minecraft 15w40b, Minecraft 1.10.2, Minecraft 16w38a, Minecraft 16w39c, Minecraft 16w42a, Minecraft 16w43a, Minecraft 16w44a, Minecraft 1.11 Pre-Release 1, Minecraft 1.12, Minecraft 1.12.2, Minecraft 18w07c, Minecraft 1.13.1, 1.15.2, 20w11a, 20w12a, 20w17a |
| Fix Version/s: | Minecraft 1.8, 20w18a |
| Type: | Bug | ||
| Reporter: | RedCMD | Assignee: | Unassigned |
| Resolution: | Fixed | Votes: | 16 |
| Labels: | redstone, redstone-comparator, redstone-dust, signal-decay, signal-strength | ||
| Environment: |
Windows 7 64bit |
||
| Attachments: |
|
||||||||||||||||||||||||||||||||||||||||||||||||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||||||||||||||
| CHK: | |||||||||||||||||||||||||||||||||||||||||||||||||
| Confirmation Status: | Confirmed | ||||||||||||||||||||||||||||||||||||||||||||||||
| Category: |
Redstone
|
||||||||||||||||||||||||||||||||||||||||||||||||
| Description |
| Comments |
| Comment by [Mod] Pokechu22 [ 29/Apr/20 ] |
|
| Comment by Tooster [ 29/Apr/20 ] |
|
! Seems to be resolved in 20w18a. |
| Comment by RedCMD [ 25/Jul/19 ] |
|
The problem is that when a redstone component (piston, redstone lamp, trapdoor, repeater etc) checks to see if redstone is pointing towards it
Inside BlockRedstoneWire.class, getSignal()
Here is my solution to the problem
This fix will also increase performance as it doesn't need to check if the dust can connect to the opposite side and it only checks the directions it could connect to as it needs them, rather than all at once and using wastefully Below are different scenarios for a redstone lamp being powered or not powered by dust that has been redirected The redstone dust is sitting on the gold block
Some more pictures with vanilla on the left and fixed on the right
Code using Mojang mappings public int getSignal(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos, Direction direction) { if(true) { //Vanilla if (!this.shouldSignal) { return 0; } int n = blockState.getValue(POWER); if (n == 0) { return 0; } if (direction == Direction.UP) { return n; } EnumSet<Direction> enumSet = EnumSet.noneOf(Direction.class); for (Direction direction2 : Direction.Plane.HORIZONTAL) { if (this.isPowerSourceAt(blockGetter, blockPos, direction2)) enumSet.add(direction2); } if (direction.getAxis().isHorizontal() && enumSet.isEmpty()) { return n; } if (enumSet.contains(direction) && !enumSet.contains(direction.getCounterClockWise()) && !enumSet.contains(direction.getClockWise())) { return n; } return 0; } else { //Fixes MC-8645 and increases performance if (!this.shouldSignal) { //This is already checked in getDirectSignal() return 0; } if (direction == Direction.DOWN) { return 0; } int n = blockState.getValue(POWER); if (n == 0) { return 0; } if (direction == Direction.UP) { return n; } if (this.isPowerSourceAt(blockGetter, blockPos, direction.getOpposite())) { return n; } if (this.isPowerSourceAt(blockGetter, blockPos, direction.getCounterClockWise() || this.isPowerSourceAt(blockGetter, blockPos, direction.getClockWise())) { return 0; } return n; } } |
| Comment by Oval [ 17/Sep/18 ] |
|
Confirmed for 1.13.1. |
| Comment by [Mod] NeunEinser [ 23/Jul/17 ] |
|
Can confirm for 1.12 |
| Comment by [Mod] Neko [ 04/Oct/16 ] |
|
16w39c is already listed. |
| Comment by K [ 04/Oct/16 ] |
|
Can confirm for 16w39c. |
| Comment by Anon Ymus [ 28/Jan/15 ] |
|
Still an issue in 1.8.2-pre5. See |
| Comment by qmagnet [ 12/Aug/14 ] |
|
This is fixed in 14w32d |
| Comment by Talven81 [ 25/Feb/14 ] |
|
This appears to be a visual glitch. Since the power output is 1, it should not travel 2 blocks, however the side of the block with the redstone appears powered. I believe this is due to the side redstone being in the same block as the powered redstone piece. |
| Comment by Kwin van der Veen [ 20/Apr/13 ] |
|
I can also confirm that this bug still exists in Minecraft 1.5.1. |
| Comment by MiiNiPaa [ 29/Jan/13 ] |
|
Can confirm: if you break redstone on top of block with torch it work as it should, if you place it back it won't. |