Metadata-Version: 2.4
Name: gemdp
Version: 10.0.0
Summary: Fluent Python builders for Minecraft datapacks & resource packs — custom items, enchantments, mob AI, screen overlays, dialogs, worldgen — plus a headless pack simulator for testing without launching the game.
Author: UniversalShift
License: GPL-3.0-only
Project-URL: Homepage, https://github.com/UniversalShift/GemDP
Keywords: minecraft,datapack,resource-pack,mcfunction,generator
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Games/Entertainment
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Pillow>=10.0
Dynamic: license-file

# <img src="https://raw.githubusercontent.com/UniversalShift/GemDP/main/assets/Gem.gif" width="30" height="30" />  Gemdp <img src="https://raw.githubusercontent.com/UniversalShift/GemDP/main/assets/Gem.gif" width="30" height="30" />

Python builders for [Minecraft datapacks](https://minecraft.wiki/w/Data_pack) and [resource packs](https://minecraft.wiki/w/Resourse_pack).


## Features

- **Custom items, tools, weapons & armor**
- **Custom blocks & ores**
- **Custom mobs**
- **Fullscreen overlays**
- **Book systems**
- **Advanced events system**
- **Event-driven AI for mobs**
- **Projectiles & raycasting**
- **Enchantments**
- **Dialogs & triggers**
- **NBT & storage**
- **Testing (mc_sim interpreter)**
- And much, much more!

## Quick start

```bash
pip install gemdp
```

```python
from gemdp import DataPack, ResourcePack, ItemComponent

dp = DataPack("demo_dp", "demo", "1.21.11")
rp = ResourcePack("demo_rp", "demo", "1.21.11")

ruby = rp.add_custom_item(
    namespace="demo",
    item_id="minecraft:clock",
    custom_name="ruby",
    texture_path="examples/ruby_family/assets/ruby.png",
    datapack=dp,
    components=ItemComponent().max_stack_size(64),
)

dp.build("out")
rp.build("out")
```

Check [getting started](docs/getting-started.md) for more information

## Examples

### Ruby datapack

Full material set: ruby, ore, tools, sword, armor set, recipes.

`examples/ruby_family/ruby_family.py`

![ruby items](https://raw.githubusercontent.com/UniversalShift/GemDP/main/assets/ExampleRuby.png)
Ore spawns underground in veins
![ruby items](https://raw.githubusercontent.com/UniversalShift/GemDP/main/assets/ExampleRubyOre.png)

### Steve mob datapack

Segmented display mob, keyframe animations, MobAI with patrol, hit reactions, goal routing.

`examples/steve_mob/steve_mob.py`

![steve mob](https://raw.githubusercontent.com/UniversalShift/GemDP/main/assets/ExampleSteve.png)


### Rules Card

Small datapack that adds the Rules card item capable of creating rules in runtime

`examples/rules_card/rules_card.py`

![rules card](https://raw.githubusercontent.com/UniversalShift/GemDP/main/assets/ExampleRulesCard.png)
![rules card menu](https://raw.githubusercontent.com/UniversalShift/GemDP/main/assets/ExampleRulesCardMenu.png)


### More examples in:
`examples/`

## Docs

- [api.md](docs/api.md) — full lookup
- [custom_blocks.md](docs/custom_blocks.md) — how to make custom blocks
- [events.md](docs/events.md) — events api
- [custom_items.md](docs/custom_items.md) — how to make custom items
