This repository has been archived on 2019-06-10. You can view files and clone it, but cannot push or open issues or pull requests.
scriptblocks/README.md

67 lines
3.5 KiB
Markdown
Raw Normal View History

2017-07-30 22:51:08 +02:00
# rmod
RMod mod for Minetest with various cool nodes.
## Conveyors
2017-07-30 22:51:08 +02:00
Conveyors are nodes that can carry entities, such as players and items. There are a few bugs with it, but it works fine for the most part.
2017-08-06 06:50:29 +02:00
### Meseconveyors
2017-08-03 16:32:20 +02:00
Meseconveyors are conveyors which can be activated and deactivated with mesecons.
2017-08-06 06:50:29 +02:00
### Digiconveyors
2017-08-03 16:32:20 +02:00
Digiconveyors can not only be turned on and off with digilines, but they can also be reversed (which flips their facing direction). The messages available at the moment are "on", "off", "toggle" (functions as both "on" and "off"), "reverse" (inverts the direction), "left" (turns left 90 degrees) and "right".
2017-08-03 16:32:20 +02:00
## Crates
2017-07-30 22:51:08 +02:00
Crates are like chests, but you can pick them up with the items inside. As a result, you can also stack crates indefinitely.
## Grates
2017-07-30 22:51:08 +02:00
Grates are nodes which let water flow through, but not players or items.
2017-08-06 06:50:29 +02:00
### Mesegrates
Mesegrates are self-explanatory - power them, and they let liquids flow.
2017-08-06 06:50:29 +02:00
### Digigrates
Digigrates can be adjusted by sending messages - they include "on", "off", "toggle" and "set". That last one, "set", is sent as a table {command = "sent", value = x}, substituting x for the percentage of water you want to pass through (although, tbh, it's more complicated than that).
## Scriptblocks
Scriptblocks are blocks that you can use for creating simple programs. They are one of the most complicated parts of this mod, which can be a good thing or a bad thing depending on your viewpoint.
2017-08-06 06:50:29 +02:00
### Basics
When the Mesecon Detector scriptblock (which is yellow with an exclamation mark on it) receives mesecon power, it triggers any scriptblocks adjacent to it. Each scriptblock will then trigger each scriptblock adjacent to itself (excluding the one that triggered it in the first place).
2017-08-06 06:50:29 +02:00
### Variables
You can store data in these scripts with the SET (looks like :=) and GET (looks like []) blocks. Each script can keep track of up to two values during execution (@info and @last), and the GET block will update @last to the previous @info, while updating @info to the value of the chosen variable. All scriptblock inputs may have "@info" or "@last" written inside them, which will be substituted for the corresponding values at runtime.
2017-08-06 06:50:29 +02:00
### Program channels
Program channels are channels you can set to avoid clashing with other programs that may use similar or equal variable names. You can still set the variables of other channels by entering them into SET and GET variable blocks.
2017-08-06 06:50:29 +02:00
### Mathematical operators
The mathematical operators (add, subtract, multiply, divide) work in much the same way as GET - they update @last to the previous @info, and update @info to the result of the calculation. To add two values together, you would do (or rather, build) something along the lines of "GET a; GET b; ADD @last @info; SET c @info;", which will set c to the sum of a and b.
2017-08-06 06:50:29 +02:00
### Conditional
The teal "?" block will lend execution in one direction if the two input values are equal, and the other if they are not equal.
2017-08-06 06:50:29 +02:00
### Print
The purple blocks with a speech bubble on them will print the message specified inside to the chat.
2017-08-06 06:50:29 +02:00
### Guide
The grey blocks which look like three arrows that converge into one are guides - they are used to aid looping by funnelling all execution in one direction - never will a guide execute nearby blocks other than the one it is pointing to.
### Player Detector
The blue block with the simplified logo of a player avatar is the Player Detector. When it is ran, it updates @last to the previous @info and updates @info to the name of the nearest player.