Make a column of floating blocks become a row

Let's say I have variable number (minimum 4 to maximum 7) of blocks positioned vertically:

``````  (B)
(B)
(B)
B
B
B
-  B
``````

What's the most efficient way to have them put horizontally like this (using a lever to turn it on and then off), without sticky pistons and make this process being able to be replicated all over again without manual intervention (other than activate the lever)?

``````-  (B) (B) (B) B B B B
``````

(Notice that the two `-` define the same level)

-
Simple: use magic! – badp May 19 '12 at 12:53
@badp, what is this supposed to mean? – Shoe May 19 '12 at 13:11
It's supposed to mean that I don't quite think what you're asking is possible in vanilla Minecraft. – badp May 19 '12 at 13:15
@badp, what about a reverse piston elevator? and at the end a piston activated by a detector? – Shoe May 19 '12 at 13:25
oh wait, I misread your post and thought I'd read "without pistons" rather than "without sticky pistons". I'm sorry. – badp May 19 '12 at 13:32

Well in fact that's not so complicated when you think about it. Do you want to make it reversible ? You just have to create a clock with redstone. Do you want to do it in smp or single player mode ? Because I think in smp clocks are still buggy.
This is how you could do that :

``````       |----------[P]
|          [B] <- Block creation here ? (Such as cobblestone ?)
|          [B]
|          [B]
|          [B]
|          [B]
|          [B]
[Clock System]-[P][B][ ][ ][ ][ ][ ][ ][P] <- Optional
[Ground]|---------[P] <- Optional
``````

So here you'll have to put some switches nearly everywhere you need to (I'm lazy and that would be complicated to draw on this schematic). The left and upper pistons (`[P]`) are used to make those blocks horizontal, and the lower one and right one to make them back to vertical, so you'll have to : When you want to make them horizontal, activate the up and left pistons (connected to the clock), and vice versa when you want to make them vertical.
I may be wrong but that's how I would do that. Though maybe you should only put 6 blocks, because of the 7 block limit with pistons. Try and tell us if it works.

By the way if you don't want this to be inverted, just remove the right and lower pistons. That will only do vertical -> horizontal and not the reverse system.

If you told me exactly what you want to do with that I could help you a bit more than that. This technique is used a lot to make cobblestones farm. When you dig the last block of the horizontal line, another block is created and is pushed. Notice that this system will take some time and work block by block. I don't think there is a system that is faster and without using a clock (unless you want it to be manual)

Here is the link for the clock system : Clocks with repeater/pistons

-
I know it's lazy but this is for trees. Basically the tree grows 4-7 blocks of trunk and then it is pushed down in a row so that getting the wood is very simple. I'd basically like to be able to see the grown tree, activate something (a button or a lever) and put all the wood block horizontal. Then I achieve wood and I or a mechanism make it so that everything go back to what it was before so that when a new tree grow I'll be able to do this again. – Shoe May 22 '12 at 10:14
With... A tree... ? And what will you do with the leaves ? I don't think that's possible, honnestly. The leaves are too random, it may block your system. For example if the tree is 7 and there is 1 block of leave at the top, you won't be able to push. More you can't do a sort of button because of the randomness of trees. You could try but it will never be automated. It's too much work, you have to find your own way, the schematic I gave you is a good point. Maybe you should add more pistons on the left if the tree is bigger than excepted. That should work. I'll edit my post to help you. – Depado May 22 '12 at 10:25
There's a specific type of tree which height is between 4 and 7 (as the question asked). Also leaves when pushed by pistons or any blocks just disappear. – Shoe May 22 '12 at 10:37
That doesn't matter, the fact is that this system only work with a permanent flow of new blocks arriving. That's why there is no automatic tree farm... Sorry I can't help you much more that that. – Depado May 22 '12 at 10:42

I don't believe this is possible in vanilla minecraft.

-
There's always a way to do it. Except that this will be really a complex redstone circuit for actually... Quite nothing. So it's possible but so hard... – Depado May 22 '12 at 10:43

You can move a set of vertical blocks to being horizontal by replacing them with other blocks (which will still be vertical).

Here's a basic mockup, using sand and a gravity feed for the replacement blocks:

``````B - a block that you want to move
P - a piston
S - a replacement block of sand or gravel

S
S
S
S
S
S
P S
BSSP
B
B
B
B
B
BP
``````

The process goes like this: first the bottom piston should push a block to the left, and retract. Then the top piston pushes a block down and retracts. Finally, the top right piston pushes a block of sand left and retracts.

The replacement blocks are necessary because the top piston has to be able to push the blocks down, and it can't push air. This mockup uses sand because you can feed in blocks of sand using nothing but gravity, so it makes the process simpler.

If you leave a seven block pit below the set of blocks that you want to make horizontal, you can have the sand drop out of view as soon as the other blocks have been made horizontal, though I'm not sure how much that would do visually, given that you'd still likely have the pistons and sand feed system visible.

To implement this simple example, you'd need a short-pulse clock connected to the three pistons, with appropriate delays to ensure they fire in the correct order, and a switch to control when the process starts.

-
Read his comments on my answer. He wants to make an automatic tree farm, and I don't think it's possible unless you want to make a very complex system with sticky pistons. Though I didn't think about the sand, thanks for that ^^ – Depado May 22 '12 at 13:06