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.9.tar.gz
(58.6 kB
view details)
Built Distribution
radonmc-2.0.9-py3-none-any.whl
(72.6 kB
view details)
File details
Details for the file radonmc-2.0.9.tar.gz
.
File metadata
- Download URL: radonmc-2.0.9.tar.gz
- Upload date:
- Size: 58.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce3f5f343a3ef1ca1bc1b581e7319502c84f628d94b2dfdc79b175076b7ff6cc |
|
MD5 | 376c15d8e34bc3d3a07814eb4873cd89 |
|
BLAKE2b-256 | 2adf31e80d136bf6e1f4de8f3cf876ed89086dc169676e9792afb719b9b93c88 |
File details
Details for the file radonmc-2.0.9-py3-none-any.whl
.
File metadata
- Download URL: radonmc-2.0.9-py3-none-any.whl
- Upload date:
- Size: 72.6 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 | b23bbd52e59366a34c28f3e44f3b2b20d528d1ab7b2ae0aedf5c8773974a0c8c |
|
MD5 | 5846b5dbb09efa9cf29221cd55ea5e7d |
|
BLAKE2b-256 | d9760a0256559bd7c4195f57f483caf47c8f3e5f60c7742c1c44bd6097e99d4e |