Some time ago, I was following the article "What would improve redstone in minecraft" by Regular Hexahedron when I had an idea that could greatly improve minecraft redstone mechanics. Here I describe the actual idea and describe a feasible way to implement it in vanilla minecraft:
The idea behind this topic is to change piston mechanics, allowing some things that were before considered impossible in minecraft to become true. By this I mean: Free-floating, self contained flying machines, piston based cars and completely automated moving piston robots. Also, self building houses (but this time with beds and paintings on the walls), signs that pop out of the ground and more.
Of course some of these contraptions may be quite complicated to do, but they are possible with just some tweaks in minecraft mechanics. And now I'll show how:
Dependent blocks
What I mean here with "dependent blocks" are blocks that need another block to exist: torches, rails, levers and some tile entities, like paintings, signs and piston heads.
When the parent block is broken or moved away, the dependent (i.e. child) block is immediately dropped - like when you break a block that is under a torch.
And for the pistons, the idea by itself is very simple:
Whenever you do something like this...
This should happen:
Torch moves with the block
You could also push\pull the torch in every direction and it should work the same. And if you have a stack of blocks with torches, levers, pressure plates or any child blocks attached, it should move those blocks as well:
*clicks on lever*
It should work on levers, torches and any other blocks attached to those stone blocks in front of the piston.
However, when there is already a block where the child block should be moved to, either the child block breaks (if the block obstructing the path is a solid block) or the block obstructing the path does (if it's not a solid block):
Solid block:
Nonsolid block:
There is one exception to this rule: when the child block is piston head, it will not break - instead, it will only push\break any blocks in front of it. This is so to allow extended pistons push other extended pistons without breaking in the process.
Practical uses
One thing many people were suggesting in Regular Hexaedron's thread (the one I mentioned above) was to fix a glitch in minecart rails that, when pushed up by a piston, and then back down, they simply break:
This happens because when the piston extends, it pushes normally the blocks in front of it as it does with any other block, but when it retracts, it doesn't "stick" the blocks above it, so the rail acts just like these stone blocks would:
Sticky piston retracting - Does not stick to more than one block
But without it's parent block, the rail, which is floating on the air, simply breaks.
If moveable dependent blocks are allowed, the rail will attach to the stone block when the piston retracts, so the contraption will work as expected, while the stone blocks will behave exactly the same way.
Another example where it can be useful is in cocoa beans farms. Youtube user "monkeyfarm" has done a great job creating a cocoa bean farm that works by pushing the trunk of the tree with pistons, but this relies in a block update bug. His farm can be seen here:
With the new behaviour for cocoa beans when pushed this way, this no longer works, but leaves space for a more reliable (and kinda interesting) cocoa bean farm:
So, how does it work? Simple. The tree is pushed up, then down. The iron saw-like structure stops the cocoa beans from moving, so they break. (Note that this is just to illustrate the concept, I did not optimize it and, sometimes, the cocoa beans gets stuck on the saw - so maybe it's not really "reliable" as I mentioned)
Ok, now getting on the fun part. How can this change make things like robots and cars in vanilla minecraft possible?
Vehicles and robots in vanilla minecraft
This engine is the basis of all moveable devices in minecraft:
The furnace would be sticky piston pointing towards the normal piston on the back
When you flip the lever, the sticky piston extends. You then flip the lever off and the sticky will pull the normal piston near the torch, thus updating it. The normal piston gets powered by the torch and pushes the entire structure forwards, restarting the cycle. Not being powered anymore, the normal piston retracts.
In an real machine, the lever would be an clocked redstone signal coming from some circuit. This would activate the "motors" that would move the entire machine. They could then be stacked side to side, or in a variety of shapes to create automated cars, planes and robots. One of the best thing about it is that a robot could be used to make infinitely extensible memory for redstone devices.
Infinitely extensible memory
Imagine two robots in a sandstone, superflat world. And a computer.
One of the robots is the "signal carrier", and the other is the "tape head". The "tape head" is over the current byte of data, let's say byte 12, and the "signal carrier" is attached to the computer. To increase the value stored on the current bit, the computer activates the "signal carrier", which decouples and goes forward until it detects a redstone signal coming in front of it (the "tape head", telling it is there). It then stops and sends the signal to increase the current value. Then, a sequence of downward pointing pistons move the sandstone under the "tape head" to encode the resulting byte, and the "signal carrier" returns to it's original position. To move the "tape head" one byte forward, a similar process should occur. The "signal carrier" takes the signal from the computer to the "tape head", which will then move further or nearer to the computer to access other bytes of data.
The problem is, the further the "tape head" is from the computer, the slower will be the command processing. But we can have infinite memory in minecraft! (At least before the memory overflows, by reaching the far lands)
Here are the schematics for the machine:
And yes, it was done on ms-paint...
Anyways, let's take a look at the
Extra compactness for redstone mechanisms
That's kinda what every redstone update in minecraft is about today, so let's see what we can do with it.
In RH's thread, I noticed that people were insistently requesting a "power block" in minecraft, one that could be pushed up and down (impossible with the minecart-over-rail method) - And this is also made possible, if you have an lever and a single block. Placing the lever on any side of the block, you will have a toggleable power block, that you can move anywhere.
This concept, as pointed out by user ryanninjasheep, could be used to implement a new kind of piston tape:
In this design, the memory is encoded by blocks with levers on them. On lever means "1", off lever means "0". The blocks could be easily cycled through, would be readable without any repeaters and you could change the memory contents with the click of an mouse! Without mentioning it's a much cheaper method in survival world.
I'm sure there are much more possibilities, principally with the moveable redstone torches, like "super compact BUD switches", "4-block XOR gate" and so on which will simplify redstoners' life, but unfortunately I'm not very good at designing those devices, so I will leave this to real redstone experts.
Publishing the Idea
User BadPrenup has done an amazing banner for my suggestion, so if you want to help publishing it, just copy the code below to your sig:
So, that's it. I'm brazillian, so if you see any spelling errors or something like that, please tell me - I spent a LONG time refining this suggestion to get it to the way it's now. Also, if this article sounds confusing for you, feel free to ask anything - I will be following it daily.
^^ Yes I thought you would think that when I put all of this nerd stuff in it. Maybe I will review it so it's easier to read - But you get the idea, don't you? Also, thanks - you're my first supporter here.
PS:
Is there a way to change the title of the topic after it has been published?
Click the "edit" button on your original post, and then click a button that says "Use Full Editor"
Thanks! That's going to be very handy for me. Maybe I can change this topic's name to something more objective about what it is going to suggest - "Moveable Child Blocks" gives the idea that it's going to add new blocks to the game.
This sounds amazing. Causes no errors or significant increase in lag that I can think of, and incredibly increases the potential that redstone has ingame, especially with a non-manual flying machine, something I worked on for a while but then gave up on, seeing the impossibility.
Support!
Rollback Post to RevisionRollBack
If you want to see a great idea for Minecraft, click the banner! Over 400 supporters and counting!
After reading your post, I realized that this needed to be in the game. If you make a signature banner, or someone else makes one for you, then I will use it. Support!
Full support. Though, I don't believe that your vehicle concept would work even if your suggestion was implemented. Wouldn't the piston on the back still need need a block update? I thought that pistons powered on the diagonal need a block update, which is why the Bud-switch works.
Full support. Though, I don't believe that your vehicle concept would work even if your suggestion was implemented. Wouldn't the piston on the back still need need a block update? I thought that pistons powered on the diagonal need a block update, which is why the Bud-switch works.
I'm not sure, but I think that the retracting piston causes an block update on the other one. Or it is itself updated to actually appear on the other block...
you could do an improved piston tape with levers on top of blocks instead of glass
That should work. The memory would be encoded by normal dirt blocks, with a lever on for "1" and off for "0". The blocks could be easily cycled through, would be readable without any repeaters and you could change the memory contents with the click of an mouse! I think I should try making one and uploading it to the topic. Actually, I'm doing it right now! Thanks for the idea -- I will credit you in the description, ok?
Revolutionarizing piston mechanics:
Moveable Dependent Blocks
Introduction
The idea behind this topic is to change piston mechanics, allowing some things that were before considered impossible in minecraft to become true. By this I mean: Free-floating, self contained flying machines, piston based cars and completely automated moving piston robots. Also, self building houses (but this time with beds and paintings on the walls), signs that pop out of the ground and more.
Of course some of these contraptions may be quite complicated to do, but they are possible with just some tweaks in minecraft mechanics. And now I'll show how:
Dependent blocks
What I mean here with "dependent blocks" are blocks that need another block to exist: torches, rails, levers and some tile entities, like paintings, signs and piston heads.
When the parent block is broken or moved away, the dependent (i.e. child) block is immediately dropped - like when you break a block that is under a torch.
And for the pistons, the idea by itself is very simple:
Whenever you do something like this...
This should happen:
Torch moves with the block
You could also push\pull the torch in every direction and it should work the same. And if you have a stack of blocks with torches, levers, pressure plates or any child blocks attached, it should move those blocks as well:
*clicks on lever*
It should work on levers, torches and any other blocks attached to those stone blocks in front of the piston.
However, when there is already a block where the child block should be moved to, either the child block breaks (if the block obstructing the path is a solid block) or the block obstructing the path does (if it's not a solid block):
Solid block:
Nonsolid block:
There is one exception to this rule: when the child block is piston head, it will not break - instead, it will only push\break any blocks in front of it. This is so to allow extended pistons push other extended pistons without breaking in the process.
Practical uses
One thing many people were suggesting in Regular Hexaedron's thread (the one I mentioned above) was to fix a glitch in minecart rails that, when pushed up by a piston, and then back down, they simply break:
This happens because when the piston extends, it pushes normally the blocks in front of it as it does with any other block, but when it retracts, it doesn't "stick" the blocks above it, so the rail acts just like these stone blocks would:
Sticky piston retracting - Does not stick to more than one block
But without it's parent block, the rail, which is floating on the air, simply breaks.
If moveable dependent blocks are allowed, the rail will attach to the stone block when the piston retracts, so the contraption will work as expected, while the stone blocks will behave exactly the same way.
Another example where it can be useful is in cocoa beans farms. Youtube user "monkeyfarm" has done a great job creating a cocoa bean farm that works by pushing the trunk of the tree with pistons, but this relies in a block update bug. His farm can be seen here:
With the new behaviour for cocoa beans when pushed this way, this no longer works, but leaves space for a more reliable (and kinda interesting) cocoa bean farm:
So, how does it work? Simple. The tree is pushed up, then down. The iron saw-like structure stops the cocoa beans from moving, so they break. (Note that this is just to illustrate the concept, I did not optimize it and, sometimes, the cocoa beans gets stuck on the saw - so maybe it's not really "reliable" as I mentioned)
Ok, now getting on the fun part. How can this change make things like robots and cars in vanilla minecraft possible?
Vehicles and robots in vanilla minecraft
This engine is the basis of all moveable devices in minecraft:
The furnace would be sticky piston pointing towards the normal piston on the back
When you flip the lever, the sticky piston extends. You then flip the lever off and the sticky will pull the normal piston near the torch, thus updating it. The normal piston gets powered by the torch and pushes the entire structure forwards, restarting the cycle. Not being powered anymore, the normal piston retracts.
In an real machine, the lever would be an clocked redstone signal coming from some circuit. This would activate the "motors" that would move the entire machine. They could then be stacked side to side, or in a variety of shapes to create automated cars, planes and robots. One of the best thing about it is that a robot could be used to make infinitely extensible memory for redstone devices.
Infinitely extensible memory
Imagine two robots in a sandstone, superflat world. And a computer.
One of the robots is the "signal carrier", and the other is the "tape head". The "tape head" is over the current byte of data, let's say byte 12, and the "signal carrier" is attached to the computer. To increase the value stored on the current bit, the computer activates the "signal carrier", which decouples and goes forward until it detects a redstone signal coming in front of it (the "tape head", telling it is there). It then stops and sends the signal to increase the current value. Then, a sequence of downward pointing pistons move the sandstone under the "tape head" to encode the resulting byte, and the "signal carrier" returns to it's original position. To move the "tape head" one byte forward, a similar process should occur. The "signal carrier" takes the signal from the computer to the "tape head", which will then move further or nearer to the computer to access other bytes of data.
The problem is, the further the "tape head" is from the computer, the slower will be the command processing. But we can have infinite memory in minecraft! (At least before the memory overflows, by reaching the far lands)
Here are the schematics for the machine:
And yes, it was done on ms-paint...
Anyways, let's take a look at the
Extra compactness for redstone mechanisms
That's kinda what every redstone update in minecraft is about today, so let's see what we can do with it.
In RH's thread, I noticed that people were insistently requesting a "power block" in minecraft, one that could be pushed up and down (impossible with the minecart-over-rail method) - And this is also made possible, if you have an lever and a single block. Placing the lever on any side of the block, you will have a toggleable power block, that you can move anywhere.
This concept, as pointed out by user ryanninjasheep, could be used to implement a new kind of piston tape:
In this design, the memory is encoded by blocks with levers on them. On lever means "1", off lever means "0". The blocks could be easily cycled through, would be readable without any repeaters and you could change the memory contents with the click of an mouse! Without mentioning it's a much cheaper method in survival world.
I'm sure there are much more possibilities, principally with the moveable redstone torches, like "super compact BUD switches", "4-block XOR gate" and so on which will simplify redstoners' life, but unfortunately I'm not very good at designing those devices, so I will leave this to real redstone experts.
Publishing the Idea
User BadPrenup has done an amazing banner for my suggestion, so if you want to help publishing it, just copy the code below to your sig:
_________________________________________________________________________________________
So, that's it. I'm brazillian, so if you see any spelling errors or something like that, please tell me - I spent a LONG time refining this suggestion to get it to the way it's now. Also, if this article sounds confusing for you, feel free to ask anything - I will be following it daily.
This is TL;DR but I guess that's whats needed to explain full implementation huh?
PS:
Is there a way to change the title of the topic after it has been published?
Click the "edit" button on your original post, and then click a button that says "Use Full Editor"
Thanks for the support! I really appreciate the fact that you liked it.
Thanks! That's going to be very handy for me. Maybe I can change this topic's name to something more objective about what it is going to suggest - "Moveable Child Blocks" gives the idea that it's going to add new blocks to the game.
Support!
If you want to see a great idea for Minecraft, click the banner! Over 400 supporters and counting!
Anyway, hate to break it to you, but this has been suggested before, but you did a much better job in the OP, so...
support.
Really? That's what happens when you don't search before posting. I really didn't know. But thanks for the support.
EDIT: lol wooden blocks for 3 year old... That's why I need to change the title of this topic FAST.
Yeah but I doubt this will get locked for it, it is too organized and perfect. With new ideas in between
Wow thanks. It took a long time to make it (principally to put all the images together), but I see you liked ^^
I also changed the title to "Moveable dependent blocks" to avoid confusion. Now nobody will get wrong ideas before reading my post
XD, that's better.
I'm not sure, but I think that the retracting piston causes an block update on the other one. Or it is itself updated to actually appear on the other block...
Only testing to know if this is gonna work.
Sorry, but these images aren't loading in my browser, could you upload them again?
That should work. The memory would be encoded by normal dirt blocks, with a lever on for "1" and off for "0". The blocks could be easily cycled through, would be readable without any repeaters and you could change the memory contents with the click of an mouse! I think I should try making one and uploading it to the topic. Actually, I'm doing it right now! Thanks for the idea -- I will credit you in the description, ok?