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.