Jump to content

Blockstates to render model parts (change part textures and disable whole part)


Recommended Posts


I have a few questions regarding Blockstates in 1.10.2. Currently I am creating a mod with logic gates (and, or, xor, ...) that look similar to the vanilla repeater and comperator. My AND-gate consists of 3 torches as input and an output line. The middle torch can be disabled to only enable 2 inputs.


To render those I am currently using a vanilla style blockstate.json which looks like that http://pastebin.com/543BW21c and is really bad to read and difficult to write, and requires dozens of model.json files.

I am pretty sure that my code is far from being good but this is the first time I am messing with blockstates and the reason I am here today.


I am looking for a way to make a more readable and easier blockstate.json and if possible reduce the amount of models to as few as needed.

Reading the forge tutorials on blockstates I thought about using submodels to achieve this or find a way to change the texture of a specific part of my model (model consists of parts: PANEL, TORCH_LEFT, TORCH_MIDDLE, TORCH_RIGHT).

Sadly I could not find any tutorial on how to achieve this.


My questions:

1. Should I use submodels for this or is there a way to set the texture of model parts from blockstate and completly disable those parts (example plz)?

2. If using submodels, is there a way to set the exact submodels location in the block (offset)?


I would be really thankful for code snippets and examples.






Link to comment
Share on other sites

If a part only renders sometimes, you should add it as a submodel in the blockstates file rather than as a part of the base model.


If a part changes textures based on the block's state, set its texture in the blockstates file. If parts need to change their textures independently, they should use different texture names.


You can't set the location of a submodel from the blockstates file.


Assuming that each torch lights up (changes texture) when that side receives a redstone signal, the left and right torches always render and the centre torch doesn't render when it's disabled; you should include the left and right torches as part of the base model but give them separate texture names and make a separate model for the centre torch with its own texture names that's added as a submodel.


I don't have any examples of this exact case, but I have some examples of similar concepts:

  • Submodels shown or hidden based on the block's state - A pipe that always renders the centre cube and uses submodels for the side connections. Link.
  • Textures set based on the block's state - A stained clay slab. Link.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...

Important Information

By using this site, you agree to our Terms of Use.