Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class PlatingPressBlock extends HorizontalDirectionalBlock implements EntityBlock {
- public PlatingPressBlock(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 PlatingPressBlockEntity(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 PlatingPressBlockEntity crafter) {
- MenuProvider containerProvider = createContainerProvider(level, pos);
- NetworkHooks.openGui((ServerPlayer) player, containerProvider, pos);
- }
- return InteractionResult.SUCCESS;
- }
- private MenuProvider createContainerProvider(Level worldIn, BlockPos pos) {
- return new MenuProvider() {
- @Override
- public TranslatableComponent getDisplayName() {
- return new TranslatableComponent("Plating Press");
- }
- @Override
- public AbstractContainerMenu createMenu(int i, Inventory playerInventory, Player playerEntity) {
- return new PlatingPressContainer(i, worldIn, pos, playerInventory, playerEntity);
- }
- };
- }
- @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) -> PlatingPressBlockEntity.tick(tickerWorld, (PlatingPressBlockEntity) blockEntity));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment