Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

I made some code to take a block and replace it with a different one but it doesn't replace the block it puts the block on the side i clicked

 

Code

 

@Override
    public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer entityplayer, int par6, float par7, float par8, float par9) {
    Item equipped = entityplayer.getCurrentEquippedItem() != null ? entityplayer.getCurrentEquippedItem().getItem() : null;
    if (equipped instanceof Wand1)
    {
    world.setBlock(i + Facing.offsetsXForSide[par6], j + Facing.offsetsYForSide[par6], k + Facing.offsetsZForSide[par6], ModBase.nexussoil.blockID);
    }
    return true;
}

 

Rather than instanceof use if(equipped.itemId==wand1.itemId)

"you seem to be THE best modder I've seen imo."

~spynathan

 

ლ(́◉◞౪◟◉‵ლ

What about the method I told you about that you put in the item class?

"you seem to be THE best modder I've seen imo."

~spynathan

 

ლ(́◉◞౪◟◉‵ლ

No, what I put was

 

Add this to your item class

 

public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10){

if(par3World.getBlockId(par4 + Facing.offsetsXForSide[par7], par5 + Facing.offsetsYForSide[par7], par6 + Facing.offsetsZForSide[par7]) == YourBlockId&&!par3World.isRemote){

par3World.setBlock(par4 + Facing.offsetsXForSide[par7], par5 + Facing.offsetsYForSide[par7], par6 + Facing.offsetsZForSide[par7], YourOtherBlockId);

par1ItemStack.damageItem(1);

}

return true;

}

 

ossempeck messed u up

"you seem to be THE best modder I've seen imo."

~spynathan

 

ლ(́◉◞౪◟◉‵ლ

Oops I made an error, try it with removing the !worl.isremote

"you seem to be THE best modder I've seen imo."

~spynathan

 

ლ(́◉◞౪◟◉‵ლ

Try this:

 

public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer entityplayer, int par6, float par7, float par8, float par9) {
    Item equipped = entityplayer.getCurrentEquippedItem() != null ? entityplayer.getCurrentEquippedItem().getItem() : null;
    if (equipped instanceof Wand1)
    {
    world.setBlock(i + Facing.offsetsXForSide[par6], j + Facing.offsetsYForSide[par7], k + Facing.offsetsZForSide[par8], ModBase.nexussoil.blockID);
    }
    return true;
}

 

If not

 

public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer entityplayer, int par6, float par7, float par8, float par9) {
    Item equipped = entityplayer.getCurrentEquippedItem() != null ? entityplayer.getCurrentEquippedItem().getItem() : null;
    if (equipped instanceof Wand1)
    {
    world.setBlock(i , j , k, ModBase.nexussoil.blockID);
    }
    return true;
}

 

If not, then just tweak the code by changing the instanceof or adding !world.isRemote

 

If not, well, I don't know  :-\

 

EDIT:

 

Replace (equipped instanceof Wand1) with (equipped.itemId() == youritem.id)

In your wand item class, you can just do a 'onItemUsed()' or something like that. So when it is right clicked on a block, you can then change the block.

 

Hope that helps :)

  • Author

Thanks everyone for trying to help this is what worked

 

public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer entityplayer, int par6, float par7, float par8, float par9) {
    Item equipped = entityplayer.getCurrentEquippedItem() != null ? entityplayer.getCurrentEquippedItem().getItem() : null;
    if (equipped instanceof Wand1)
    {
    world.setBlock(i , j , k, ModBase.nexussoil.blockID);
    }
    return true;
}

 

EDIT: I am probably pretty stupid but is there anyway to damage the item from the block class because i can't get the item one to work.

Something like entityplayer.inventory.getItemStack(wand1).damageItme(1)

"you seem to be THE best modder I've seen imo."

~spynathan

 

ლ(́◉◞౪◟◉‵ლ

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.