Minecraft – Why does this slime block auto-harvester work

minecraft-java-editionminecraft-redstone

I stumbled across this design by accident while trying to build a more complicated one. When the bamboo grows, the sticky piston extends, breaks the crop into drops, and the system resets and waits for the bamboo to grow again.

left column: grass, bamboo, air, observer (facing down), slime block, sticky piston (facing down). middle column: grass, air, obsidian, redstone repeater (facing right, delay 2 ticks), air, cobblestone slab (upper), redstone dust. right column: grass, air, air, cobblestone, redstone dust.

Here are the parts I do understand:

  • The bamboo growth causes the observer to emit a 1-tick pulse which powers the slime block.
  • The slime block doesn't power the piston directly because pistons don't accept power from their head (I think?).
  • The repeater transfers the pulse to the cobblestone, delaying it by 2 ticks and simultaneously extending it to 2 ticks long.
  • The 2-tick pulse travels through the cobblestone and wire to the sticky piston.
  • The sticky piston extends for 2 ticks. The obsidian and repeater are unaffected by the adjacent slime block as neither can be pulled by a sticky piston. The observer pushes the bamboo and breaks it.
  • The pulse from the repeater expires and the sticky piston retracts.
  • Since it was extended for more than 1 tick, the slime block and observer are successfully pulled back with it.

What I **don't ** understand:

  • Why doesn't the observer pulse again after being retracted?
  • If the repeater is set to more than 2 ticks, then the observer does pulse again after being retracted. Why does that happen? Why is 2 ticks the magic number for resetting the system?

Best Answer

The observer ceases 'observing' for the duration of emitting its own redstone pulse - only changes occurring after it are noticed. The first pulse ends before the piston starts extending. Then the piston extends, the observer notices it, but the piston starts retracting immediately. The observer would emit the signal while it's in transition upwards, except blocks in motion don't emit redstone signal, so it's suppressed. Still, the 'cooldown' is initiated and the changes occurring during the motion - ignored. It arrives at the 'rest' position right as its redstone signal ends, and only then starts observing anew.