Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class CrafterBlock extends HorizontalDirectionalBlock implements EntityBlock {
- public CrafterBlock(Properties properties) {
- super(properties);
- registerDefaultState(defaultBlockState().setValue(FACING, Direction.NORTH));
- }
- @Override
- public BlockState getStateForPlacement(BlockPlaceContext context) {
- return defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite());
- }
- @Override
- public BlockEntity newBlockEntity(BlockPos pos, BlockState state) {
- return new CrafterBlockEntity(pos, state);
- }
- @Override
- public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand,
- BlockHitResult result) {
- if (!level.isClientSide && level.getBlockEntity(pos) instanceof final CrafterBlockEntity crafter) {
- final MenuProvider container = new SimpleMenuProvider(CrafterContainer.getServerContainer(crafter, pos),
- CrafterBlockEntity.TITLE);
- NetworkHooks.openGui((ServerPlayer) player, container, pos);
- }
- return InteractionResult.SUCCESS;
- }
- @Override
- protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
- super.createBlockStateDefinition(builder);
- builder.add(FACING);
- }
- @Nullable
- @Override
- public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level world, BlockState state, BlockEntityType<T> type) {
- return ((tickerWorld, pos, tickerState, blockEntity) -> CrafterBlockEntity.tick(tickerWorld, (CrafterBlockEntity) blockEntity));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement