Guest User

Untitled

a guest
Apr 18th, 2022
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. public class PlatingPressBlock extends HorizontalDirectionalBlock implements EntityBlock {
  2. public PlatingPressBlock(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 PlatingPressBlockEntity(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 PlatingPressBlockEntity crafter) {
  21. MenuProvider containerProvider = createContainerProvider(level, pos);
  22. NetworkHooks.openGui((ServerPlayer) player, containerProvider, pos);
  23. }
  24.  
  25. return InteractionResult.SUCCESS;
  26. }
  27.  
  28. private MenuProvider createContainerProvider(Level worldIn, BlockPos pos) {
  29. return new MenuProvider() {
  30. @Override
  31. public TranslatableComponent getDisplayName() {
  32. return new TranslatableComponent("Plating Press");
  33. }
  34.  
  35. @Override
  36. public AbstractContainerMenu createMenu(int i, Inventory playerInventory, Player playerEntity) {
  37. return new PlatingPressContainer(i, worldIn, pos, playerInventory, playerEntity);
  38. }
  39. };
  40. }
  41.  
  42. @Override
  43. protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
  44. super.createBlockStateDefinition(builder);
  45. builder.add(FACING);
  46. }
  47. @Nullable
  48. @Override
  49. public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level world, BlockState state, BlockEntityType<T> type) {
  50. return ((tickerWorld, pos, tickerState, blockEntity) -> PlatingPressBlockEntity.tick(tickerWorld, (PlatingPressBlockEntity) blockEntity));
  51. }
  52. }
  53.  
Advertisement
Add Comment
Please, Sign In to add comment