Jump to content

Recommended Posts

Posted (edited)

I have a  block that changes it's blockstate when you click on it with another copy of this block.

I have a method for this and it works but I wonder if there are better ways of doing the exact same thing.

 public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) {
        if (!pLevel.isClientSide){
            // check if player is holding a pot block
            // it is required to change the state "POTS" - the amount of pots that block contains
            // the amount of pots must not exeed 4 
            if (pHand == InteractionHand.MAIN_HAND && pPlayer.getMainHandItem().is((ModBlocks.LITTLE_POT.get().asItem())) && pState.getValue(POTS)<4) {
                // update block with new "POTS" state value
                pLevel.setBlock(pPos, pState.cycle(POTS), 3);
                // success
                return InteractionResult.CONSUME;
            }
            // otherwise fail
        }
        return  InteractionResult.FAIL;
    }

Thank you.

Edited by flexindahard

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.