Instead of having a block for every variant, each block represents a specific material with optional variants and states.
A material is defined as the texture that a block displays.
Examples of materials include:
- Wood (spruce planks, oak logs, etc.)
- Stone (deepslate, tuff, cobblestone, etc.)
- Dirt (dirt, grass, podzol, etc.)
NOTE: One could take this system further. I.e. make all wood types into separate states of a single "wood" material. This would break the definition of "material", but would be more data-driven.
A variant is defined in this system as a block that uses the same texture/material, but has a separate model.
Examples of variants include:
- Full block
- Stair
- Slab
- Wall
- Fence
- Other (pressure plate, chest, furnace, door, button, etc. For variants like chests and furnaces, a template texture could be overlayed onto the texture to make them work.)
A state is essentially a tag placed on a block that enables novelty features.
Examples of states include:
- Mossy
- Cracked
- Waxed
- Oxidized
- Suspicious
- Redstone level
In this system, the textures and crafting recipies for variants are all defaulted. However, these could be overridden if needed. This means that for every block added, there could be zero technical work to implement an entire blockset.
Only 1 variant can be selected at a time, but multiple states can. Mutex could be available too.
In creative mode, there could be a menu for choosing the variant/states of specific block. That way, blocksets can be shrunk into single items for creative mode.
Please sign in to leave a comment.
0 Comments