A Minecraft bedrock addon compiler made in python
Project description
mcpy-compiler
A niche little compiler made in python that will go through all your addon files and compile them to an output (such as com_mojang folder) and watch for any changes to compile them instantly!
Features
-
Automatic manifest generation. It will check what you have, such as scripts, and add it to the manifest automatically!
-
Optimized outputs. Removes blank lines, and ignores comments in files. (excluding scripts)
-
Pretty fast. I tested the compiler on a personal project that has about 2000~ varying files, and compiled them all in about 3 seconds!
-
Convert jpeg and webp to png. The compiler will automatically convert jpeg and webp images to png!
-
Automatic texture defining. The compiler can go through all your textures and place them in
item_texture.json
automatically with no need to do it manually. (the texture definition will be the filename, works also for blocks, and texture list) -
Build projects into addons easily! Can compile all your files and then neatly place them into an mcaddon file!
-
Search & Replace words/characters. Use
searcher.json
and insert a keyword to find in each file and replace. -
Each file compiler flag. Each file can have it's own compiler flags, which is simply the first line of any file with a comment saying it's flag.
Getting started
Create a config.json
file at the root directory of your project and set it up:
You can use this example config
Please note that the actual config cannot have comments, and the compiler will fail if you try run it with a commented config
{
"output": "@com_mojang", // Where to compile output, use '@com_mojang' to go directly to com_mojang folder.
"auto_manifest": true, // Whether to use the automatic manifest generation tool.
"project_name": "test", // Project display name
"project_description": "test", // Project description
"target_version": "1.20.80", // Target minecraft version
"script_entry": "scripts/Main.js", // If using scripts, where the entry point is
"packs": [ // What packs you will be using `bp` and/or `rp`
"bp",
"rp"
],
"show_compiled": false, // Whether to display succesfully compiled files
"compile_confusing_files": false // Whether to compile unknown or confusing files, if true, the compiler will compile them as a bytes file.
"auto_texture_defining": true, // Whether to use the auto texture defining feature.
"auto_textures_do": [ // Which textures to define if `auto_texture_defining` is `true`
"items",
"blocks",
"list"
],
"show_dates": true, // Whether to show the date and time when a file compiles (`show_compiled` must be true)
"use_searcher": true // Whether to compile with the emoji codex.
}
Next create a python script at the root directory of your project, and imort mcpy_compiler
, you may tinker with it, but if you want to just get to it call mcpy_compiler.run()
and it will do everything you need it to do!
from mcpy_compiler import mcpy_compiler
mcpy_compiler.run()
To build a project:
from mcpy_compiler import mcpy_compiler
mcpy_compiler.build(True, True)
If you run into any problems please create a github issue!
Key notes
- This might work on mac and linux although I can't make any promises, as long as you have the
output
set to something else other than@com_mojang
. - Sometimes a file might compile twice in one go.
- Only webp and jpg/jpeg images will be converted to png.
- Json comments must be on a seperate line to compile as regular json.
- The output is removed before new files are compiled into it.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mcpy_compiler-0.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab1be3f1a2d443c72f9728a08ff6d7cae5180afef6213a5f0da9ef7b3bf0a731 |
|
MD5 | b353672deeb3995e4ef9731d6eda7ee2 |
|
BLAKE2b-256 | 2d1d4c5133aac43a2fd9bb91509653d623afa7f461f0af614efdac97e45c49bf |