MinecartRevolution/Control Blocks

From LoadingByte Wiki
Jump to navigation Jump to search

Control blocks are the simplest way of controlling the behavior of minecarts. They are just blocks with a special function and can be placed so they are bound to a minecart rail. No further configuration is required, they just work.

Location

TODO: Replace ASCII art with real images.

Control blocks can be placed in different locations in order to "bind" them to a rail. The first possible location is directly under the rail:

_ rail   + normal block   # control block

___
###
+++
+++

Control blocks can also be placed two blocks under the rail. That way the blocks can be hidden and don't change the look of the minecart rail:

_ rail   + normal block   # control block

___
+++
###
+++
+++

But what if more than one control block is needed for one rail? More control blocks can be placed below the first control block which has to sit in one of the two locations mentioned above. Controls blocks can be attached downwards until a "normal" block, which isn't a control block, is there. Examples:

_ rail   + normal block   # control block

Possible       Not Possible
___   ___       ___   ___
###   +++       ###   +++
###   ###       ###   +++
###   ###       +++   ###
+++   ###       ###   ###
+++   +++       +++   +++
+++   +++       +++   +++

Default Blocks

MinecartRevolution comes with some default control blocks (basiccontrols module). Note that the MinecartRevolution core provides the engine for those control blocks, so MinecartRevolution plugins can add their own control blocks. The block ids of the default control blocks can be modified in the basiccontrols configuration file.

Booster

The booster block (default: gold block) sets the speed of a minecart that is passing over the block to 5 times the minecart's old speed. Actually, the block just executes the following expression on the minecart:

speed $speed * 5

BasicControls ControlBlock Booster.png

Brake

The brake block (default: soul sand block) sets the speed of a minecart that is passing over the block to the minecart's old speed divided by 5. Actually, the block just executes the following expression on the minecart:

speed $speed / 5

BasicControls ControlBlock Brake.png

Control Sign Block

TODO: Better image

The control sign block (default: brick block) executes all the control signs that are attached to it or placed below it on the minecart that is passing over the block.

You may ask: Why do I need this? As you can read in the location section, a rail can have multiple control blocks. However, the space for control signs is quite limited. If you want to use more than one or two control signs on a single rail block, you can use the control sign block to increase the available control sign space

BasicControls ControlBlock ControlSignBlock.png

Elevator

The elevator block (default: diamond block) allows to teleport a minecart that is passing over it to another elevator block which is placed exactly above the first elevator block. The minecart keeps its direction and velocity (speed).

In order to teleport the minecart, the block first searches for the next elevator block with a higher y coordinate than the first one and with the same x and z coordinates as the first one. After that, the block executes the following expression on the minecart with second_elevator_block_y + 1 as the <y> value:

vertical <y>

BasicControls ControlBlock Elevator.png

Kill

The kill block (default: mossy cobblestone block) just removes every minecart that passes over it. Note that any passenger riding the minecart at that moment is ejected. You can turn the smoke effect on or off in the main config using the key functionality.entity.playDefaultEffects. The kill block executes the following expression on the minecart:

kill

BasicControls ControlBlock Kill.png

Reverse

The reverse block (default: white wool block) negates the driving direction of every minecart that passes over it. That means that the minecart just drives in the opposite direction to the one it drove in when it came to the block. The minecart keeps its velocity (speed) and only changes its direction. The reverse block executes the following expression on the minecart:

reverse

BasicControls ControlBlock Reverse.png