No project description provided
Project description
Block Wrangler
A Python library to help Minecraft shader developers deal with block IDs.
Installation
Using pip
pip install block_wrangler
From source
git clone git@github.com:camplowell/block_wrangler.git
pip install -e path/to/block_wrangler
Core Concepts
The block_wrangler library uses a few main concepts:
Block Types
These represent the different types of blocks that can be found in Minecraft, and all of their properties.
Tags
These represent a method to produce a semantically meaningful group of block states.
The library comes with all Vanilla tags, and a few more that are commonly used in shaders.
They can use other tags in their definitions, and their actual contents are calculated on demand.
Block Collections
These are a more concrete representation of a group of block states. Tags can create them, or you can define them manually.
Mappings
Mappings store the actual numeric IDs that go into your block.properties file. They are created by transforming a dictionary whose keys are a semantically meaningful label, and whose values are Block Collections.
Usage
Below is a simple example of how to use the library. More complete documentation is coming soon.
from block_wrangler import load_tags, BlockMapping, blocks
from pathlib import Path
shaderpack_root = Path('__file__').parent.joinpath('shaders').resolve()
def main():
tags = load_tags()
mapping = BlockMapping.solve({
'sway': tags['sway'],
'sway_bottom': tags['sway/bottom'],
'water': blocks('minecraft:water')
})
with shaderpack_root.joinpath('block.properties').open('w') as f:
f.write(mapping.render_encoder())
with shaderpack_root.joinpath('util/block_properties.glsl').open('w') as f:
f.write(mapping.render_decoder())
if __name__ == '__main__':
main()
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 block_wrangler-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7e0295815d5eaef1552ce835c97c7f9f61a6a24da536bf89458843b75af2f84 |
|
MD5 | 6efcd3061c4c27f50ef4b773f03506f3 |
|
BLAKE2b-256 | 432eb58dcc4153d5bca1c7b9da191cda230de7774358e4834a48e5920b717d35 |