// ----------------- MY CRAFTING TABLE BLOCK CLASS ------------------------------
public class WhiteCraftingTableBlock extends Block {
public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING;
private static final Component CONTAINER_TITLE = new TranslatableComponent("container.crafting");
public WhiteCraftingTableBlock(Properties p_49795_) {
super(p_49795_);
}
@Override
public InteractionResult use(BlockState p_52233_, Level p_52234_, BlockPos p_52235_, Player p_52236_, InteractionHand p_52237_, BlockHitResult p_52238_) {
if (p_52234_.isClientSide) {
return InteractionResult.SUCCESS;
} else {
p_52236_.openMenu(p_52233_.getMenuProvider(p_52234_, p_52235_));
p_52236_.awardStat(Stats.INTERACT_WITH_CRAFTING_TABLE);
return InteractionResult.CONSUME;
}
}
@Override
public BlockState getStateForPlacement(BlockPlaceContext pContext) {
return this.defaultBlockState().setValue(FACING, pContext.getHorizontalDirection().getOpposite());
}
@Override
public BlockState rotate(BlockState pState, Rotation pRotation) {
return pState.setValue(FACING, pRotation.rotate(pState.getValue(FACING)));
}
@Override
public BlockState mirror(BlockState pState, Mirror pMirror) {
return pState.rotate(pMirror.getRotation(pState.getValue(FACING)));
}
@Override
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> pBuilder) {
pBuilder.add(FACING);
}
@Override
public MenuProvider getMenuProvider(BlockState p_52240_, Level p_52241_, BlockPos p_52242_) {
return new SimpleMenuProvider((p_52229_, p_52230_, p_52231_) -> new CraftingMenu(p_52229_, p_52230_, ContainerLevelAccess.create(p_52241_, p_52242_)), CONTAINER_TITLE);
}
}