Posted September 10, 20196 yr I am currently facing some issues with this small block that i'm trying to make. When i'm placing it won't render when facing down. all sides render correctly. The block is just a copy of minecraft:hopper my states: { "variants": { "facing=down": { "model": "examplemod:block/newblock" }, "facing=north": { "model": "examplemod:block/newblock_side" }, "facing=south": { "model": "examplemod:block/newblock_side", "y": 180 }, "facing=west": { "model": "examplemod:block/newblock_side", "y": 270 }, "facing=east": { "model": "examplemod:block/newblock_side", "y": 90 } } } inside textures/block i got the exact same png's just renamed to reflect this examplemod. inside, outside and top. inside models/block i got two model files, newblock and newblock_side, just as minecraft hopper. this is models/block/newblock.json: { "ambientocclusion": false, "textures": { "particle": "examplemod:block/newblock_outside", "top": "examplemod:block/newblock_top", "side": "examplemod:block/newblock_outside", "inside": "examplemod:block/newblock_inside" }, "elements": [ { "from": [ 0, 10, 0 ], "to": [ 16, 11, 16 ], "faces": { "down": { "texture": "#side" }, "up": { "texture": "#inside", "cullface": "up" }, "north": { "texture": "#side", "cullface": "north" }, "south": { "texture": "#side", "cullface": "south" }, "west": { "texture": "#side", "cullface": "west" }, "east": { "texture": "#side", "cullface": "east" } } }, { "from": [ 0, 11, 0 ], "to": [ 2, 16, 16 ], "faces": { "up": { "texture": "#top", "cullface": "up" }, "north": { "texture": "#side", "cullface": "north" }, "south": { "texture": "#side", "cullface": "south" }, "west": { "texture": "#side", "cullface": "west" }, "east": { "texture": "#side", "cullface": "up" } } }, { "from": [ 14, 11, 0 ], "to": [ 16, 16, 16 ], "faces": { "up": { "texture": "#top", "cullface": "up" }, "north": { "texture": "#side", "cullface": "north" }, "south": { "texture": "#side", "cullface": "south" }, "west": { "texture": "#side", "cullface": "up" }, "east": { "texture": "#side", "cullface": "east" } } }, { "from": [ 2, 11, 0 ], "to": [ 14, 16, 2 ], "faces": { "up": { "texture": "#top", "cullface": "up" }, "north": { "texture": "#side", "cullface": "north" }, "south": { "texture": "#side", "cullface": "up" } } }, { "from": [ 2, 11, 14 ], "to": [ 14, 16, 16 ], "faces": { "up": { "texture": "#top", "cullface": "up" }, "north": { "texture": "#side", "cullface": "up" }, "south": { "texture": "#side", "cullface": "south" } } }, { "from": [ 4, 4, 4 ], "to": [ 12, 10, 12 ], "faces": { "down": { "texture": "#side" }, "north": { "texture": "#side" }, "south": { "texture": "#side" }, "west": { "texture": "#side" }, "east": { "texture": "#side" } } }, { "from": [ 6, 0, 6 ], "to": [ 10, 4, 10 ], "faces": { "down": { "texture": "#side", "cullface": "down" }, "north": { "texture": "#side" }, "south": { "texture": "#side" }, "west": { "texture": "#side" }, "east": { "texture": "#side" } } } ] } and models/block/newblock_side.json { "ambientocclusion": false, "textures": { "particle": "examplemod:block/newblock_outside", "top": "examplemod:block/newblock_top", "side": "examplemod:block/newblock_outside", "inside": "examplemod:block/newblock_inside" }, "elements": [ { "from": [ 0, 10, 0 ], "to": [ 16, 11, 16 ], "faces": { "down": { "texture": "#side" }, "up": { "texture": "#inside", "cullface": "up" }, "north": { "texture": "#side", "cullface": "north" }, "south": { "texture": "#side", "cullface": "south" }, "west": { "texture": "#side", "cullface": "west" }, "east": { "texture": "#side", "cullface": "east" } } }, { "from": [ 0, 11, 0 ], "to": [ 2, 16, 16 ], "faces": { "up": { "texture": "#top", "cullface": "up" }, "north": { "texture": "#side", "cullface": "north" }, "south": { "texture": "#side", "cullface": "south" }, "west": { "texture": "#side", "cullface": "west" }, "east": { "texture": "#side", "cullface": "up" } } }, { "from": [ 14, 11, 0 ], "to": [ 16, 16, 16 ], "faces": { "up": { "texture": "#top", "cullface": "up" }, "north": { "texture": "#side", "cullface": "north" }, "south": { "texture": "#side", "cullface": "south" }, "west": { "texture": "#side", "cullface": "up" }, "east": { "texture": "#side", "cullface": "east" } } }, { "from": [ 2, 11, 0 ], "to": [ 14, 16, 2 ], "faces": { "up": { "texture": "#top", "cullface": "up" }, "north": { "texture": "#side", "cullface": "north" }, "south": { "texture": "#side", "cullface": "up" } } }, { "from": [ 2, 11, 14 ], "to": [ 14, 16, 16 ], "faces": { "up": { "texture": "#top", "cullface": "up" }, "north": { "texture": "#side", "cullface": "up" }, "south": { "texture": "#side", "cullface": "south" } } }, { "from": [ 4, 4, 4 ], "to": [ 12, 10, 12 ], "faces": { "down": { "texture": "#side" }, "north": { "texture": "#side" }, "south": { "texture": "#side" }, "west": { "texture": "#side" }, "east": { "texture": "#side" } } }, { "from": [ 6, 4, 0 ], "to": [ 10, 8, 4 ], "faces": { "down": { "texture": "#side" }, "up": { "texture": "#side" }, "north": { "texture": "#side", "cullface": "north" }, "west": { "texture": "#side" }, "east": { "texture": "#side" } } } ] } I am not sure if it is problem related to any of these files or if it is related to some block registration code hope someone can help point me in the right direction. please tell if i should post more code. If it helps i have tried following this tutorial on youtube. Best Regards. Solved: @Nullable @Override public BlockState getStateForPlacement(BlockItemUseContext context) { BlockState blockstate = super.getStateForPlacement(context); if (blockstate != null) { if(context.getNearestLookingDirection() == Direction.UP) { blockstate = blockstate.with(BlockStateProperties.FACING, Direction.DOWN); } else { blockstate = blockstate.with(BlockStateProperties.FACING, context.getNearestLookingDirection()); } } return blockstate; } I am now avoiding an up direction by checking context.getNearestLookingDirection() , setting it to direction.down i case that happens and otherwise use the returned direction. Edited September 11, 20196 yr by holst666
September 10, 20196 yr 9 minutes ago, holst666 said: When i'm placing it won't render when facing down. Only when it is facing down? Have you looked at the block in F3 to make sure the facing property is down? Also could you post a screenshot or elaborate on what you mean by "won't render"? VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
September 10, 20196 yr Author 3 minutes ago, Animefan8888 said: Only when it is facing down? Have you looked at the block in F3 to make sure the facing property is down? Also could you post a screenshot or elaborate on what you mean by "won't render"? Looks like it's facing up then. it's when looking downwards and placing it. Look up and placing works to.
September 10, 20196 yr Author Setting an facing=up would fix it, but how do they handle it otherwise, vanilla does not look like they have set an up variant.? Edited September 10, 20196 yr by holst666
September 10, 20196 yr 1 hour ago, holst666 said: but how do they handle it otherwise, vanilla does not look like they have set an up variant.? They must not ever let it have an UP variant when its placed. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
September 11, 20196 yr Author How can i manual check for facing direction and set the propper blockstate then ?
September 11, 20196 yr 5 minutes ago, holst666 said: How can i manual check for facing direction and set the propper blockstate then ? I don't know what your code looks like so the best I can tell you is look at HopperBlock#getStateForPlacement VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
September 11, 20196 yr Author Solved: @Nullable @Override public BlockState getStateForPlacement(BlockItemUseContext context) { BlockState blockstate = super.getStateForPlacement(context); if (blockstate != null) { if(context.getNearestLookingDirection() == Direction.UP) { blockstate = blockstate.with(BlockStateProperties.FACING, Direction.DOWN); } else { blockstate = blockstate.with(BlockStateProperties.FACING, context.getNearestLookingDirection()); } } return blockstate; } I am now avoiding an up direction by checking context.getNearestLookingDirection() , setting it to direction.down i case that happens and otherwise use the returned direction.
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.