Resolution: Works As Intended
Minecraft 1.4.2, Minecraft 1.4.5, Minecraft 1.4.6, Minecraft 1.4.7, Snapshot 13w01a, Snapshot 13w01b, Snapshot 13w02a, Snapshot 13w02b, Snapshot 13w03a, Snapshot 13w04a, Snapshot 13w05a, Snapshot 13w05b, Snapshot 13w06a, Snapshot 13w07a, Snapshot 13w09a, Snapshot 13w09b, Snapshot 13w09c, Snapshot 13w10a, Snapshot 13w10b, Minecraft 1.5, Snapshot 13w11a, Minecraft 1.5.1, Minecraft 1.5.2, Snapshot 13w18c, Snapshot 13w19a, Snapshot 13w23b, Snapshot 13w24a, Snapshot 13w24b, Snapshot 13w25a, Snapshot 13w25b, Snapshot 13w25c, Minecraft 1.6.1, Minecraft 1.6.2, Minecraft 1.11.2, Minecraft 17w17b, Minecraft 17w18a, Minecraft 17w18b, Minecraft 1.12
What I expected to happen was...:
Pistons should only extend when powered by a block that updates them. Blocks that are not touching the piston should not power it (touching diagonally is OK).
In this image, the pistons should accept any power from the green blocks, check to see if the orange blocks would notify it before accepting power from them, and not accept power from any of the stone blocks:
What actually happened was...:
Pistons extend when blocks are providing power to the block above them, even if they don't update the piston. In this case, the piston must be updated by another method in order to extend or retract.
Example of odd effects this has: https://www.youtube.com/watch?v=JqU0Kmb_bFA
Steps to Reproduce:
1. Place a piston.
2. Put a block on top of it.
3. Put another block on any exposed face of that block.
4. Put a lever on the block you just placed and flip it.
5. Notice that the piston doesn't extend.
6. Place or break any block directly next to the piston.
7. Notice that the piston extends.
8. Flip the lever off.
9. Notice that the piston did not retract.
10. Place or break another block directly next to the piston.
11. Notice that the piston retracts.
Edit: Image now allows for more interesting new types of redstone components and less invasive implementation.