emilyploszaj/chime

[Suggestion] Extend system of block models by introducing overrides and predicates

Closed this issue · 1 comments

Similarly to item predicates, the blockstates system could be expended with predicates.

Syntax :

{
  "parent": "minecraft:block/cube_all",
  "textures": {
    "all": "minecraft:block/glass"
  }, // vanilla fields are optionals, as with items
  "overrides": [
    {
      "predicate": {
        "<predicate_name>": "<predicate_value>"
      },
      "model": "minecraft:glass_with_predicate"
    }
  ]
}
Name Type Description
all world and dimension item predicates - The world and dimension are specified by the block position.
blockstates String similar to blockstates file in assets/namespace/blockstates but in block models.
neighbour/+x|+y|+z|-x|-y|-z Identifier The ID of the block next to the current block in the +x/+y/+z/-x/-y/-z direction
position/x|y|z Range The x/y/z position of the block

The biggest problem with this is it's too performance intensive to manage all of those predicates, as there would either have to be a huge set of events for rebuilding, or everything would have to be checked every frame. I also consider it out of the scope of chime.