Piston

Pistons are blocks capable of pushing most blocks, depending on the direction they are facing.

Sticky Pistons are similar to pistons; the difference is that they can pull blocks as well as push them.

Obtaining
A piston can be broken using any tool with equal efficiency, and will always drop itself.

Natural generation
Three sticky pistons generate as part of each jungle temple.

Usage
Pistons are always placed facing towards the player. When powered, the piston's wooden surface (head) extends outward by one block for 1.5 redstone ticks (0.15 seconds, barring lag), which can be heard within a 31x31x31 cube centered on the activating piston, the piston can push up to 12 blocks in a line with it. Any entities in the path of the extending head will be pushed with the blocks. If there is no place for the entities to go, the block will push inside the mob, suffocating it if the block is not transparent.

When a piston loses power, it will retract by simply pulling its head back instantly (0 redstone ticks), unless it is a sticky piston, in which case it will also pull the block in front of the head.

Sticky pistons only stick to a block when retracting, so a block next to the piston head can be pushed aside by another piston and sticky pistons cannot hold falling blocks horizontally against gravity.

A piston that pushes a slime block will bounce any entity that it displaces in the direction the piston is facing.

Pushing blocks
Pistons will not push blocks into the Void or the top of the map. They also cannot push more than 12 blocks. In each case, the piston simply will not extend.

Pistons can push most blocks, exceptions are listed below. Sticky pistons cannot pull any of the blocks listed below, they will simply be left behind when the sticky piston retracts.

Pistons also will not move blocks that are "attached to a block", as they will be detached and drop as an item. Exceptions include:


 * s: as long as their hinged side remains attached to a solid block in their new position.
 * : as long as they remain on top of a solid block in their new position, and that block isn't moving at the same time. Rails will re-orient themselves after being pushed just as they do when placed manually.

Powering pistons


Pistons can be powered in various ways:
 * If a redstone wire is in a line shape towards the piston, as the wire will not automatically curve to the piston.
 * Pistons can be powered by a powered block directly adjacent to them, whether it is strongly powered or weakly powered.
 * Pistons can be powered by a redstone torch directly adjacent to them.
 * Pistons can be powered by any powered block one block above and to the side, including the front of them where the head extends. However, the piston won't extend or retract until it receives a block update. This property is called quasi-connectivity and can be used to make a BUD switch.
 * A repeater cannot transfer power through a piston, as pistons are a transparent block.
 * An upwards-facing piston can't be powered by a block above it, unless it is extended.

Slime blocks
When a slime block is pushed or pulled by a piston, while moving, adjacent blocks will also move with the slime block, unless a non-piston movable block stops the blocks that are "grabbed" by the slime blocks. These blocks may in turn push other blocks, not just the blocks in the line in front of the piston. For example, a Slime Block sitting on the ground will attempt to move the ground block underneath itself, which will in turn have to push additional ground blocks in the direction of motion just as if it were being pushed directly by a piston.

The same occurs when a slime block is moved by an adjacent Slime Block. For example, a 2×2×2 cube of Slime Blocks may be pushed or pulled as a unit by a single piston acting on any of the blocks in the cube.

A slime block adjacent to a block that cannot be moved by pistons will ignore the immobile block. But if an adjacent block could be moved but is prevented by the presence of an immobile block, the slime block will be prevented from moving.

Slime blocks are not pulled by a non-sticky piston, nor are they moved if an adjacent (non-Slime) block is moved by a piston.

The maximum of 12 blocks moved by a piston still applies. For example, a 2×2×3 collection of Slime Blocks may be pushed or pulled by a sticky piston as long as no other movable blocks are adjacent to it.

A piston cannot move itself via a "hook" constructed of slime blocks, but self-propelled contraptions can be created with multiple pistons.

Piston head
The piston head (a.k.a. "block 34") is a technical block used as the second block of an extended piston which can only be placed using the command. A block state defines whether it is a normal or a sticky piston head.

Block state
The  block uses following block states:

Piston extension
The piston extension (a.k.a. "Block Being Moved By Piston" or simply "block 36") is an unobtainable technical block that contains part of a piston head, and/or part of one or two blocks that the piston is carrying into or out of the grid cell (including blocks carried indirectly via slime blocks). Since moving blocks vary in how much of each grid cell they occupy, they can't be stored as normal blocks and are instead stored as block entities.

It is invisible, non-solid, and cannot be broken without the use of commands. It decreases the light level of light passing through by 1. Although it is non-solid, fluids cannot pass through it. It also prevents from building at its location. The game treats the block as a stone block when it comes to their breaking animation and the player's footstep sounds.

Block entity
The  technical block uses following block entity data:

Block state
The  technical block uses following block states:

Block state
The  and   blocks use following block states:

Trivia

 * When blocks are pushed by a piston, they are momentarily non-solid and cause other kinds of entities on the moving block to fall through it. This effect lasts longer for the slime block than other blocks; entities can fall through one in the time it takes a piston to extend.
 * When toggled between on and off rapidly with a gravity affected block (such as sand) above it, a piston will eventually break the block, which can be picked up as a resource. However, gravel will never break into flint.
 * Mobs can spawn inside the piston head block.
 * Carpet can be placed on the piston extension block, and will remain even if is replaced with a solid block using.