Metadata-Version: 2.1
Name: cenerator
Version: 0.1.2
Summary: A Minecraft data pack creation utility
Home-page: https://github.com/Zakru/cenerator
Author: Zakru
License: UNKNOWN
Project-URL: Source Code, https://github.com/Zakru/cenerator
Project-URL: Issue Tracker, https://github.com/Zakru/cenerator/issues
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Games/Entertainment
Classifier: Topic :: Software Development :: Libraries
Description-Content-Type: text/markdown
License-File: LICENSE

# Cenerator

A Minecraft data pack creation utility

## Features

* Procedurally generate Minecraft data packs with Python
* As this is just a fancy way of writing to files, it is fully customizable, for example with functions
* Some convenient shorthand features
* Outputs everything in a data pack, ready to go

## Example usage

See `examples/` directory for more examples.

### Hello, world!

```py
import cenerator

p = cenerator.Pack('hello_world',
    default_namespace='hello_world',
    description='A hello world datapack made with cenerator',
)


@p.func(tags = ['minecraft:load'])
def hello_world(c):
    c('say Hello, world!')
```

This outputs a data pack which executes the command `say Hello, world!` on load.

### Macros

The following example showcases use of functions that take `c` and use it to output commands (referred to as "macros")

```py
def say_with_all(c, format_str, values):
    for v in values:
        c(f'say {format_str.format(v)}')


@p.func(tags = ['minecraft:load'])
def macro(c):
    values = ['John', 'Joe', 'Jane', 'Jill']
    say_with_all(c, 'Hello, {}!', values)
    say_with_all(c, 'Goodbye, {}!', values)
```

This results in a `mcfunction` file with some otherwise tedious-to-write code:

```mcfunction
say Hello, John!
say Hello, Joe!
say Hello, Jane!
say Hello, Jill!
say Goodbye, John!
say Goodbye, Joe!
say Goodbye, Jane!
say Goodbye, Jill!
```

This is extremely useful for situations where a lot of code must be repeated with different but constant parameters.


