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.0.1.tar.gz
(57.1 kB
view details)
Built Distribution
radonmc-2.0.1-py3-none-any.whl
(71.2 kB
view details)
File details
Details for the file radonmc-2.0.1.tar.gz
.
File metadata
- Download URL: radonmc-2.0.1.tar.gz
- Upload date:
- Size: 57.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f6bea5fcac5e2d6a7c35241d7d455b4389cd00de0eedc436799fa4ee2050c11 |
|
MD5 | 8eab69775ac03197b2c7ad7d1d0df860 |
|
BLAKE2b-256 | 45155257aae8ab1f8fef3aa8c82deb57c0717528d09a22805687d016e3d91f3b |
File details
Details for the file radonmc-2.0.1-py3-none-any.whl
.
File metadata
- Download URL: radonmc-2.0.1-py3-none-any.whl
- Upload date:
- Size: 71.2 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 | 541ca10922888e03a1d6c858f8296c0d2363f9d8aca9bf6ad17795800fdd7d0a |
|
MD5 | 5f45685c1351f931a4d2f54d6402b669 |
|
BLAKE2b-256 | d394fb441fa8098b93bb9dbfd82f594666339d957f93f67593d923c072ab9163 |