Skip to content
/ pymdfl Public

A prototype domain-specific language for generating datapacks.

Notifications You must be signed in to change notification settings

jerbob/pymdfl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyMDFL Package

A command-line application to generate data packs based on CRISPYrice's MDFL specification.

Installation

Install with pip: python -m pip install mdfl

If pip doesn't add the package to PATH correctly, you can start the program with python -m mdfl.

Usage

mdfl --help will output usage information:

PyMDFL: A command-line tool for parsing MDFL and generating Data Packs.

Usage:
    mdfl <script> [--output=<path>]
    mdfl <script> [--tree]
    mdfl -h | --help
    mdfl -V | --version

Options:
    -h --help        Show this screen.
    -V --version     Show version.
    --output=<path>  Output path for the datapack.
    --tree           Print a syntax tree without compiling.

The <script> argument specifies a file that conforms to the MDFL spec. For example, given a file gems.mdfl:

namespace diamonds {
  // Namespace for obtaining diamonds.

  fun get {
    // Give the caller a diamond.
    give @s minecraft:diamond;
  }
}

namespace emeralds {
  // Namespace for obtaining emeralds.

  fun get {
    // Give the caller an emerald.
    give @s minecraft:emerald;
  }
}

Run mdfl gems.mdfl and enter a description for your data pack.

$ mdfl gems.mdfl
Description of gems: All your gems are belong to @s

This will generate a zip file gems.zip with the following structure:

├── data
│  ├── emeralds
│  │  └── functions
│  │     └── get.mcfunction
│  └── diamonds
│     └── functions
│        └── get.mcfunction
└── pack.mcmeta

See the examples directory for more complex examples.

Roadmap

  • Namespaces
  • Functions
  • NBT item references
  • Objective definitions
  • If statements
  • Scoreboard event tags
  • Function tags

About

A prototype domain-specific language for generating datapacks.

Topics

Resources

Stars

Watchers

Forks