Skip to main content

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!

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)
}

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.

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

mcpy_compiler-0.3.0.tar.gz (10.1 kB view hashes)

Uploaded Source

Built Distribution

mcpy_compiler-0.3.0-py3-none-any.whl (9.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page