Skip to main content

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

block_wrangler-0.0.2.tar.gz (50.0 kB view hashes)

Uploaded Source

Built Distribution

block_wrangler-0.0.2-py3-none-any.whl (114.6 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