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-1.3.5.tar.gz
(48.2 kB
view details)
Built Distribution
radonmc-1.3.5-py3-none-any.whl
(60.7 kB
view details)
File details
Details for the file radonmc-1.3.5.tar.gz
.
File metadata
- Download URL: radonmc-1.3.5.tar.gz
- Upload date:
- Size: 48.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7e0ed39e86a668404b8f6fd838196a3f3ec938548d549ae17a2bb3aa7068f0c |
|
MD5 | 0a7db14d206ffbe520b0e21517b1fd61 |
|
BLAKE2b-256 | 86e826bad6ea5f199df4481208361738cd6a68fd98e8b199f00272f95fb22ff9 |
File details
Details for the file radonmc-1.3.5-py3-none-any.whl
.
File metadata
- Download URL: radonmc-1.3.5-py3-none-any.whl
- Upload date:
- Size: 60.7 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 | be02ef78469bb6237e1eb52cfa5102dc54009520907cd831367ccaa463a27c8b |
|
MD5 | 91795b34e4bea9a8e5ac031b2b6f243c |
|
BLAKE2b-256 | 2c71c2b310f9821019b693ae05cd73c664de3da03ff4cd6a794419174974937b |