Compiles RED lang into Minecraft schematics
npm install redc
$ npm install -g redc
$ redc -f
`All options:
| option | short | description |
|--------|-------|-------------|
| --file | -f | Path to input RED file [required]
| --out | -o | Directory to output .mcfunction (defaults to the current directory)
| --name | -n | Name of the outputted .mcfunction file (defaults to name of <file>)
In node
`javascript
import redc from 'redc';
// or: import { compile } from 'redc';redc.compile(...).then(console.log);
// => "setblock..."
`Executing code on the computer
1. Build the code: redc -f
2. Find the save file of your copy of the computer (typically in AppData/Roaming/.minecraft/saves/... on Windows)
3. Copy the .mcfunction file into datapacks/red/data/red/functions
4. Enter the world in Minecraft (if you are already in it, leave so the game reparses functions)
5. Enter command /function red:
6. Go to the front of the ROM and disable the breaker right outside it (the row of pistons)REDlang
REDlang is very low level. Every line translates 1:1 with machine code.
A VSCode extension for syntax highlighting is available for install redlangExample:
`
use i = ram:0
use counter = device:0@entry
[Main]
i = 0
goto Loop
[Loop]
counter = i
i = i plus 1
i will roll over eventually and then the
if will not pass
goto Loop if ifall through
exit
`The code will run like a
for loop, writing the index to the first word of device memory, starting from 0 and counting until it overflows at 63.#### Breakdown
- The code defines two variables, allocating their sources and address in memory, syntax being:
use .
- It defines two routines, Main and Loop, tagging Main as the entry routine.
- i is initialized to 0 because there might be some memory from an old execution.
- counter cannot be assigned to counter + 1 because counter` is write-only memory.