• Journey's End on PC - Find info here and here. Please report bugs and issues for PC 1.4 and 1.4.1 to Re-Logic here.
  • Journey's End on Mobile - Find info here. Report bugs for Mobile 1.4 to DR Studios at this link and give as much detail as possible.
  • 1.4 will bring many changes to the PC version. We strongly advise making plans to back up your worlds and players prior to updating your game. More details here.
  • Console and Switch - The latest news can be found here. To report a bug, please use this link.

Moving Blocks

To yee or not to yee

  • Yee

  • Not Yee

  • Yee but change _


Results are only viewable after voting.

TheWorfer27

Retinazer
Moving blocks are blocks that can well, move. They can be crafted with 1 cog and 1 wire.

When placed, they are deactive by default. Whenever a signal is recivied, they switch from active to inactive. While inactive, they just act like regular blocks, but while active, they move based on what wires they are touching. If it touches a red wire, it goes 1 tile up. Blue, 1 down. Green is 1 left, and yellow 1 right. If the wire would send it into a block, it is ignored. If 2 wires are on one block, it does both commands, including movong diagonally.

It has a horizontal movement speed of 11.36 blocks/sec, or 15 mph (shown by the Stopwatch), and 10mph vertically.

Do you think it should go differently or want something clarified? Tell me in the comments?
 

Yello_X

Duke Fishron
Will furnitures attached to them deattach when moved or will it follow? (Ex: 2 moving blocks with a workbench)
And also, will entities follow the blocks or just stand still when moved to the right/left?
This also needs a better name, imo.
Neato anyways, a ConBelt replacement :p
 

TheWorfer27

Retinazer
Will furnitures attached to them deattach when moved or will it follow? (Ex: 2 moving blocks with a workbench)
And also, will entities follow the blocks or just stand still when moved to the right/left?
This also needs a better name, imo.
Neato anyways, a ConBelt replacement :p
I hadn't really thought of that. I guess they would carry furniture but not blocks.
 

temery2383

Skeletron Prime
Interesting idea, but I think it would be better if the movement wasn't based on wire color. Perhaps the direction could change by hammering instead.
 

Laluzi

Skeletron
Very interesting concept. I don't think it would be able to carry furniture - I'm not sure it'd be able to carry paint, either. I would think it should carry the player, but that may be more of a challenge than anticipated to make work.

The wire thing is the neatest way I can think to actually carry this out (hammering the block would be a no-go - hammering something like an actuator on the space might be a better possibility), but at the same time, the wire color severely limits and confuses what you'd be able to do with this. I'm not sure how you can manage a circuit, attaching these blocks to a trigger, and still have them move depending on wire. I'm having difficulty enunciating what I'm thinking, but trying to get a block to move in more than one direction, or trying to make it follow a complex path like up-up-left-up-left-down-down couldn't be done on one circuit. If I attached a block to a red wire, it would move up twice and then stop, because it is no longer attached to the same signal that told it to move in the first place.

I'm also not sure where the stop/deactivate condition resides.
 

Laluzi

Skeletron
Yeah, but that doesn't actually work for what you've suggested. By nature of your blocks moving from one space to another, they are no longer connected to the wires that could send them a second signal telling them to stop. Or a conscientious builder could accomplish this, but Terraria has to prepare for all cases, and this creates a situation where the default is something that's stuck in a perpetual on state when triggered once. Usually you want the 'you're doing it wrong' case to be 'nothing happens' and not 'block flies off of the map.'

You'd have to be sending a signal to every space you move the block to in sequence. Which could be made easier if you attach a trigger to whatever enables this mechanism in the first place, like 'block getting moved to a square with a wire sends a signal to itself on the new space', but it's still difficult to envision. What I'm saying is that you need to think about some way to reliably be able to tell a block when to stop. Or where, because in this case it's the same thing. But come up with a how.

Oh, and you'd probably want to do something about gravity affected blocks. As it is, you could set a sand block to spazz out by telling it to move up one space, whereupon it will fall, but because it's still active, it hits the wire and moves up again, ad infinitum.
 

TheWorfer27

Retinazer
Yeah, but that doesn't actually work for what you've suggested. By nature of your blocks moving from one space to another, they are no longer connected to the wires that could send them a second signal telling them to stop. Or a conscientious builder could accomplish this, but Terraria has to prepare for all cases, and this creates a situation where the default is something that's stuck in a perpetual on state when triggered once. Usually you want the 'you're doing it wrong' case to be 'nothing happens' and not 'block flies off of the map.'

You'd have to be sending a signal to every space you move the block to in sequence. Which could be made easier if you attach a trigger to whatever enables this mechanism in the first place, like 'block getting moved to a square with a wire sends a signal to itself on the new space', but it's still difficult to envision. What I'm saying is that you need to think about some way to reliably be able to tell a block when to stop. Or where, because in this case it's the same thing. But come up with a how.

Oh, and you'd probably want to do something about gravity affected blocks. As it is, you could set a sand block to spazz out by telling it to move up one space, whereupon it will fall, but because it's still active, it hits the wire and moves up again, ad infinitum.
I feel like we're in a perpetual cycle of misunderstanding eachother
 
  • Like
Reactions: Bry

Laluzi

Skeletron
I'm not misunderstanding you, I'm pointing out that I've spotted a hole in your idea. Signals can only be sent from a trigger to anything on a stretch of wire. Your suggestion allows blocks to be moved off of the wires they originally existed on. This means they can move onto different circuits, which is fine, and spaces which don't have wires at all, which is not fine. It is possible to move a block to a state where it cannot receive a signal and will thus be stuck 'on'.

You could solve this by hardcoding a block to stop whenever it reaches a space without any wires, but in practice this means that your block can only travel a path once before you need to alter its circuit. Unless the block moving into a space is a trigger in and of itself, which can then be linked to some other trigger that can tell the block to stop moving, trying to control the block you've created is a nightmare. By design, unless you're having your block move in a straight line, it cannot be attached to the same circuit that initially tells it to move. If I use a red wire to connect the block to a trigger - I can only attach that red wire to a space I want the block to move up on. And since blocks cannot move back and forth on the same lines anyway via this mechanism, you're going to have to redirect the block at some point, wherein you've lost connection to that original signal-sending item.
 

TheWorfer27

Retinazer
I'm not misunderstanding you, I'm pointing out that I've spotted a hole in your idea. Signals can only be sent from a trigger to anything on a stretch of wire. Your suggestion allows blocks to be moved off of the wires they originally existed on. This means they can move onto different circuits, which is fine, and spaces which don't have wires at all, which is not fine. It is possible to move a block to a state where it cannot receive a signal and will thus be stuck 'on'.

You could solve this by hardcoding a block to stop whenever it reaches a space without any wires, but in practice this means that your block can only travel a path once before you need to alter its circuit. Unless the block moving into a space is a trigger in and of itself, which can then be linked to some other trigger that can tell the block to stop moving, trying to control the block you've created is a nightmare. By design, unless you're having your block move in a straight line, it cannot be attached to the same circuit that initially tells it to move. If I use a red wire to connect the block to a trigger - I can only attach that red wire to a space I want the block to move up on. And since blocks cannot move back and forth on the same lines anyway via this mechanism, you're going to have to redirect the block at some point, wherein you've lost connection to that original signal-sending item.
That makes since now. I'm going to think about this.
 

BlueBolt22

Official Terrarian
Here's a sprite for them. Item sprite is on
the left, placed on the right:
W27 Moving Block.gif
The yellow is a wheel.
 
Last edited:
Top Bottom