redc
TypeScript icon, indicating that this package has built-in type declarations

0.0.6 • Public • Published

redc

the compiler for REDlang, a minecraft general purpose computer

Usage

$ npm install -g redc
$ redc -f <path/to/file>

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

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 <filename> -o
  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:<filename>
  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 redlang

Example:

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 i

# fall 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 <variable> = <ram|device|input>:<address>.
  • 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.

Readme

Keywords

Package Sidebar

Install

npm i redc

Weekly Downloads

1

Version

0.0.6

License

MIT

Unpacked Size

40 kB

Total Files

17

Last publish

Collaborators

  • probeiuscorp