Advertisement
Guest User

Untitled

a guest
Mar 26th, 2022
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. public class CrafterBlock extends HorizontalDirectionalBlock implements EntityBlock {
  2. public CrafterBlock(Properties properties) {
  3. super(properties);
  4. registerDefaultState(defaultBlockState().setValue(FACING, Direction.NORTH));
  5. }
  6. @Override
  7. public BlockState getStateForPlacement(BlockPlaceContext context) {
  8. return defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite());
  9. }
  10.  
  11.  
  12. @Override
  13. public BlockEntity newBlockEntity(BlockPos pos, BlockState state) {
  14. return new CrafterBlockEntity(pos, state);
  15. }
  16.  
  17. @Override
  18. public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand,
  19. BlockHitResult result) {
  20. if (!level.isClientSide && level.getBlockEntity(pos) instanceof final CrafterBlockEntity crafter) {
  21. final MenuProvider container = new SimpleMenuProvider(CrafterContainer.getServerContainer(crafter, pos),
  22. CrafterBlockEntity.TITLE);
  23. NetworkHooks.openGui((ServerPlayer) player, container, pos);
  24. }
  25.  
  26. return InteractionResult.SUCCESS;
  27. }
  28.  
  29. @Override
  30. protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
  31. super.createBlockStateDefinition(builder);
  32. builder.add(FACING);
  33. }
  34. @Nullable
  35. @Override
  36. public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level world, BlockState state, BlockEntityType<T> type) {
  37. return ((tickerWorld, pos, tickerState, blockEntity) -> CrafterBlockEntity.tick(tickerWorld, (CrafterBlockEntity) blockEntity));
  38. }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement