I want to make my block face the player when it is placed
here is the block code:
public class Not_Block extends Block {
public static final DirectionProperty FACING = HorizontalBlock.HORIZONTAL_FACING;
public Not_Block(Properties properties) {
super(properties);
this.setDefaultState(this.stateContainer.getBaseState().with(FACING, Direction.NORTH));
}
//sets the block to always be placed facing the player
@Override
public BlockState getStateForPlacement(BlockItemUseContext context) {
return this.getDefaultState().with(FACING, context.getPlacementHorizontalFacing().getOpposite());
}
@Override
protected void fillStateContainer(Builder<Block, BlockState> builder) {
builder.add(FACING);
}
}
here is the line in EventBusSubscriber
@SubscribeEvent
public static void onRegisterBlocks(RegistryEvent.Register<Block> event) {
event.getRegistry().registerAll(
setup(new Not_Block(Block.Properties.create(Material.ROCK)
.hardnessAndResistance(3.0F,3.0F).sound(SoundType.STONE))
, "not_block"));
}
here is the blockstates json
{
"variants": {
"facing=north": { "model": "minecraftedu:block/not_block"}
"facing=south": { "model": "minecraftedu:block/not_block", "y": 180 }
"facing=east": { "model": "minecraftedu:block/not_block", "y": 270 }
"facing=west": { "model": "minecraftedu:block/not_block", "y": 90 }
}
}
and here is the block json
{
"parent": "block/cube",
"textures": {
"particle": "minecraftedu:block/not_block",
"all": "minecraftedu:block/not_block"
},
"elements": [
{
"from": [ 0, 0, 0 ],
"to": [ 16, 16, 16 ],
"faces": {
"down": { "uv": [0,8, 16,16], "texture": "#all", "cullface": "down" },
"up": { "uv": [0,8, 16,16], "texture": "#all", "cullface": "up" },
"north": { "uv": [0,0, 16,8], "texture": "#all", "cullface": "north" },
"south": { "uv": [0,0, 16,8], "texture": "#all", "cullface": "south" },
"west": { "uv": [0,8, 16,16], "texture": "#all", "cullface": "west" },
"east": { "uv": [0,8, 16,16], "texture": "#all", "cullface": "east" }
}
}
]
}