Minecraft – make pistons retriggerable

minecraft-java-editionminecraft-redstone

…by any other means than madly pulsing their input?

The picture illustrates my problem.

Piston blocked
The piston was powered up when both spaces between it and the obsidian block were filled with cobblestone. This is perfectly expectable. Now I broke the second piece of cobble, and I'd expect the piston to move the other block. It does not.

How can I get the piston to act in this situation?

(This is a reduced testcase. In my case the situation is more complex; there is a queue of stones blocked, waiting until needed. A piston pushes a block out of the front of that queue on demand, and the location after the removed block should immediately fill as soon as the "on demand" piston retreats. This doesn't happen because the queue even stopped momentarily, is stuck forever.)

Best Answer

There is a way you can detect if a block is missing using a repeater and redstone current.

The further stone-block is destroyed in between the images. As far as I know, this is the only way to do it without clocks (pulses). The piston itself does not keep itself triggered, but that can be implemented with memory cells if need be (See 3rd image).

Figure #1 Figure #2 Figure #3