Tikaji Posted April 27, 2020 Posted April 27, 2020 I'm attempting to add a block that has a base model that is always rendered and has a specific part that is rendered based on a property in the block class. I'm following the redstone wire block class as a reference, but I'm having issues just getting the default model to display. What am I missing to get just the default model to render? And then going forward, am I missing anything to get the other variants to display? All I should need to do is update the property correct? Block class Reveal hidden contents package com.novamachina.ens.common.block; import com.novamachina.ens.common.builder.BlockBuilder; import com.novamachina.ens.common.item.mesh.EnumMesh; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.state.EnumProperty; import net.minecraft.state.IProperty; import net.minecraft.state.StateContainer.Builder; import net.minecraftforge.common.ToolType; public class BlockSieve extends BaseBlock { public static final EnumProperty<EnumMesh> MESH = EnumProperty.create("mesh", EnumMesh.class); public BlockSieve() { super(new BlockBuilder().properties( Block.Properties.create(Material.WOOD).hardnessAndResistance(0.7F) .sound(SoundType.WOOD).notSolid()).harvestLevel(ToolType.AXE, 0)); this.setDefaultState(this.stateContainer.getBaseState().with(MESH, EnumMesh.NONE)); } protected void fillStateContainer(Builder<Block, BlockState> builder) { builder.add(new IProperty[]{MESH}); } } Blockstate JSON Reveal hidden contents { "multipart": [ { "apply": { "model": "ens:block/block_sieve" } }, { "when": { "mesh": "string", "apply": { "model": "ens:block/mesh_string" } } }, { "when": { "mesh": "flint", "apply": { "model": "ens:block/mesh_flint" } } }, { "when": { "mesh": "iron", "apply": { "model": "ens:block/mesh_iron" } } }, { "when": { "mesh": "diamond", "apply": { "model": "ens:block/mesh_diamond" } } } ] } One of the mesh JSON Reveal hidden contents { "parent": "ens:block/mesh_base", "textures": { "texture": "minecraft:blocks/wool_colored_light_blue" } } Mesh base JSON Reveal hidden contents { "parent": "minecraft:block/block", "textures": { "texture": "#texture" }, "name": "mesh_base", "display": { "thirdperson_righthand": { "rotation": [ 75, 45, 0 ], "translation": [ 0, 0, -2.5 ], "scale": [ 0.4, 0.4, 0.4 ] }, "firstperson_righthand": { "rotation": [ 0, 45, 0 ], "translation": [ -0.5, -1, 0 ], "scale": [ 0.4, 0.4, 0.4 ] }, "firstperson_lefthand": { "rotation": [ 0, 225, 0 ], "translation": [ -0.5, -1, 0 ], "scale": [ 0.4, 0.4, 0.4 ] }, "gui": { "rotation": [ 30, 225, 0 ], "translation": [ 0, -7.5, 0 ], "scale": [ 0.8, 0.8, 0.8 ] } }, "elements": [ { "from": [ 1, 13.25, 2.5 ], "to": [ 15, 13.5, 3 ], "faces": { "up": { "texture": "#texture" }, "down": { "texture": "#texture" }, "north": { "texture": "#texture" }, "south": { "texture": "#texture" }, "west": { "texture": "#texture" }, "east": { "texture": "#texture" } } }, { "from": [ 1, 13.25, 4 ], "to": [ 15, 13.5, 4.5 ], "faces": { "up": { "texture": "#texture" }, "down": { "texture": "#texture" }, "north": { "texture": "#texture" }, "south": { "texture": "#texture" }, "west": { "texture": "#texture" }, "east": { "texture": "#texture" } } }, { "from": [ 1, 13.25, 5.5 ], "to": [ 15, 13.5, 6 ], "faces": { "up": { "texture": "#texture" }, "down": { "texture": "#texture" }, "north": { "texture": "#texture" }, "south": { "texture": "#texture" }, "west": { "texture": "#texture" }, "east": { "texture": "#texture" } } }, { "from": [ 1, 13.25, 7 ], "to": [ 15, 13.5, 7.5 ], "faces": { "up": { "texture": "#texture" }, "down": { "texture": "#texture" }, "north": { "texture": "#texture" }, "south": { "texture": "#texture" }, "west": { "texture": "#texture" }, "east": { "texture": "#texture" } } }, { "from": [ 1, 13.25, 8.5 ], "to": [ 15, 13.5, 9 ], "faces": { "up": { "texture": "#texture" }, "down": { "texture": "#texture" }, "north": { "texture": "#texture" }, "south": { "texture": "#texture" }, "west": { "texture": "#texture" }, "east": { "texture": "#texture" } } }, { "from": [ 1, 13.25, 10 ], "to": [ 15, 13.5, 10.5 ], "faces": { "up": { "texture": "#texture" }, "down": { "texture": "#texture" }, "north": { "texture": "#texture" }, "south": { "texture": "#texture" }, "west": { "texture": "#texture" }, "east": { "texture": "#texture" } } }, { "from": [ 1, 13.25, 11.5 ], "to": [ 15, 13.5, 12 ], "faces": { "up": { "texture": "#texture" }, "down": { "texture": "#texture" }, "north": { "texture": "#texture" }, "south": { "texture": "#texture" }, "west": { "texture": "#texture" }, "east": { "texture": "#texture" } } }, { "from": [ 1, 13.25, 13 ], "to": [ 15, 13.5, 13.5 ], "faces": { "up": { "texture": "#texture" }, "down": { "texture": "#texture" }, "north": { "texture": "#texture" }, "south": { "texture": "#texture" }, "west": { "texture": "#texture" }, "east": { "texture": "#texture" } } }, { "from": [ 2.5, 13.24, 1 ], "to": [ 3, 13.49, 15 ], "faces": { "up": { "texture": "#texture" }, "down": { "texture": "#texture" }, "north": { "texture": "#texture" }, "south": { "texture": "#texture" }, "west": { "texture": "#texture" }, "east": { "texture": "#texture" } } }, { "from": [ 4, 13.24, 1 ], "to": [ 4.5, 13.49, 15 ], "faces": { "up": { "texture": "#texture" }, "down": { "texture": "#texture" }, "north": { "texture": "#texture" }, "south": { "texture": "#texture" }, "west": { "texture": "#texture" }, "east": { "texture": "#texture" } } }, { "from": [ 5.5, 13.24, 1 ], "to": [ 6, 13.49, 15 ], "faces": { "up": { "texture": "#texture" }, "down": { "texture": "#texture" }, "north": { "texture": "#texture" }, "south": { "texture": "#texture" }, "west": { "texture": "#texture" }, "east": { "texture": "#texture" } } }, { "from": [ 7, 13.24, 1 ], "to": [ 7.5, 13.49, 15 ], "faces": { "up": { "texture": "#texture" }, "down": { "texture": "#texture" }, "north": { "texture": "#texture" }, "south": { "texture": "#texture" }, "west": { "texture": "#texture" }, "east": { "texture": "#texture" } } }, { "from": [ 8.5, 13.24, 1 ], "to": [ 9, 13.49, 15 ], "faces": { "up": { "texture": "#texture" }, "down": { "texture": "#texture" }, "north": { "texture": "#texture" }, "south": { "texture": "#texture" }, "west": { "texture": "#texture" }, "east": { "texture": "#texture" } } }, { "from": [ 10, 13.24, 1 ], "to": [ 10.5, 13.49, 15 ], "faces": { "up": { "texture": "#texture" }, "down": { "texture": "#texture" }, "north": { "texture": "#texture" }, "south": { "texture": "#texture" }, "west": { "texture": "#texture" }, "east": { "texture": "#texture" } } }, { "from": [ 11.5, 13.24, 1 ], "to": [ 12, 13.49, 15 ], "faces": { "up": { "texture": "#texture" }, "down": { "texture": "#texture" }, "north": { "texture": "#texture" }, "south": { "texture": "#texture" }, "west": { "texture": "#texture" }, "east": { "texture": "#texture" } } }, { "from": [ 13, 13.24, 1 ], "to": [ 13.5, 13.49, 15 ], "faces": { "up": { "texture": "#texture" }, "down": { "texture": "#texture" }, "north": { "texture": "#texture" }, "south": { "texture": "#texture" }, "west": { "texture": "#texture" }, "east": { "texture": "#texture" } } } ] } Quote
Niprow Posted April 27, 2020 Posted April 27, 2020 please send your crash log Quote I will make fun of you if you are not able to look into the (vanilla-) code.
Tikaji Posted April 27, 2020 Author Posted April 27, 2020 No crash. The default model displays as a missing texture. I suppose I should have reported the following with my issue. I do get a warning saying that models are missing. However, I believe I'm doing something wrong because if I understand correctly, I should be able to create a multipart mode. [26Apr2020 22:31:46.206] [Server-Worker-5/WARN] [net.minecraft.client.renderer.model.ModelBakery/]: Exception loading blockstate definition: 'ens:blockstates/block_sieve.json' missing model for variant: 'ens:block_sieve#mesh=diamond' [26Apr2020 22:31:46.207] [Server-Worker-5/WARN] [net.minecraft.client.renderer.model.ModelBakery/]: Exception loading blockstate definition: 'ens:blockstates/block_sieve.json' missing model for variant: 'ens:block_sieve#mesh=none' [26Apr2020 22:31:46.207] [Server-Worker-5/WARN] [net.minecraft.client.renderer.model.ModelBakery/]: Exception loading blockstate definition: 'ens:blockstates/block_sieve.json' missing model for variant: 'ens:block_sieve#mesh=iron' [26Apr2020 22:31:46.207] [Server-Worker-5/WARN] [net.minecraft.client.renderer.model.ModelBakery/]: Exception loading blockstate definition: 'ens:blockstates/block_sieve.json' missing model for variant: 'ens:block_sieve#mesh=string' [26Apr2020 22:31:46.207] [Server-Worker-5/WARN] [net.minecraft.client.renderer.model.ModelBakery/]: Exception loading blockstate definition: 'ens:blockstates/block_sieve.json' missing model for variant: 'ens:block_sieve#mesh=flint' Quote
Niprow Posted April 27, 2020 Posted April 27, 2020 (edited) ahh ok, in your blockstate: it should be that: {"when": {"<enum>": <something>}, "apply": {"model": "<model>"} }, no that is bullshit, sorry Edited April 27, 2020 by Niprow it is bullshit Quote I will make fun of you if you are not able to look into the (vanilla-) code.
Tikaji Posted April 27, 2020 Author Posted April 27, 2020 Is that not what I have in my blockstate? If you look at the block state for oak fence or redstone wire it's pretty similar. Quote
Niprow Posted April 27, 2020 Posted April 27, 2020 yea my fault, sorry I edited it yet that it is bullshit Quote I will make fun of you if you are not able to look into the (vanilla-) code.
Niprow Posted April 27, 2020 Posted April 27, 2020 My fault again it's not bullshit but the solution. In your blockstate JSON you don't close the "when" query before the actual thing to be executed - please try it. Quote I will make fun of you if you are not able to look into the (vanilla-) code.
Tikaji Posted April 27, 2020 Author Posted April 27, 2020 Ah I see what you're saying. My JSON was incorrect. Quote
Recommended Posts
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.