Radon is a programming language that gets compiled to Minecraft: Java Edition's mcfunction files.
Project description
Radon
Radon is a programming language that gets compiled to Minecraft: Java Edition's mcfunction files.
Discord Server
Documentation
Documentation is available on GitHub Pages.
Usage
First install the package using:
pip install radonmc
Now run radon
while being inside your datapack's folder and that's it!
Syntax
a = 10
a += 10
a -= 10
a *= 10
a /= 10
a++
a--
b = 10.5
c = [1, 2, 3]
d = [c, c, c]
e = {"myKey": a, "myOtherKey": c, "myOtherOtherKey": d}
e.myOtherOtherKey[0][2] // this is c[2] which is 3
// To run commands just type them:
say hi
// Multi line commands are available, you can break the new line character with backslash:
execute \
as @a \
at @s \
run say hi
// If you want to define a variable with no initial value you just do this:
define int my_var
a += c[2] - (d[0][1] * 10) / (d[1][2] + 7) // Supports mathematical expressions
// You can break lines in expressions too!
val = 10 + \
5 - 4 * \
a + 5
fl = 10.5
fl += 5.23
a:@s = 10 // sets it for @s
a:@s // gets it from @s
fn my_func(float x, float y, float z) {
tp @a $(x) $(y) $(z)
return x + y + z
}
my_func(1.3, 2.7, 3.3)
fn tick {
// This will run every tick
}
as @p at @s {
}
if (a == 1) {
} else if (a == 2) {
} else {
}
// Some more syntactic sugar for readability! (Optional)
if (a is 1 or b is 5) {
}
unless (a == 1) { // This is a shortcut for: if (a == 1) {} else { say hi }
say hi
}
schedule 1t {
}
loop {
}
for (i = 0; i < 10; i++) {
}
while (a == 1) {
}
until (a == 1) {
}
do {
} while (a == 1)
do {
} until (a == 1)
loop 1t {
}
for 1t (i = 0; i < 10; i++) {
}
while 1t (a == 1) {
}
until 1t (a == 1) {
}
do {
} while 1t (a == 1)
do {
} until 1t (a == 1)
// break and continue can be used in any loop like this:
loop {
if (a == 1) break // Exits the loop
if (a == 2) continue // Stops the loop and restarts from the first line of the loop
}
class MyClass {
a = 10
b = [1, 2, 3]
MyClass(int a) {
this.a = a
this.b[0] = 5
}
increaseTheA() {
this.a++
}
}
myInstance = MyClass(50)
myInstance.increaseTheA()
print(myInstance.a) // it's 51
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
radonmc-2.2.5.tar.gz
(57.5 kB
view details)
Built Distribution
radonmc-2.2.5-py3-none-any.whl
(63.3 kB
view details)
File details
Details for the file radonmc-2.2.5.tar.gz
.
File metadata
- Download URL: radonmc-2.2.5.tar.gz
- Upload date:
- Size: 57.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51142878659eebe51e6b57561b8c3c954940f9d251482e1d924870adcaa8d884 |
|
MD5 | 9ae5f7c686da2bb9e9c64de414925b59 |
|
BLAKE2b-256 | 899cc52b1acc5d33f79f2d6f7bb2c3d3ec5c26c297220fd293d41bc9dfdb4fcb |
File details
Details for the file radonmc-2.2.5-py3-none-any.whl
.
File metadata
- Download URL: radonmc-2.2.5-py3-none-any.whl
- Upload date:
- Size: 63.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e27ecedbfa51ea023606d21d100bf462db9d8c936aa660379226a8a854c14e2 |
|
MD5 | 2b717ccad01e5e726c32f5bca6ed3090 |
|
BLAKE2b-256 | 807aa34fe344a29802161374c1b59392b6a0269dbeb23cadcf460abfdda7ea0a |