Posted January 13, 201312 yr 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; } Creator of Jobo's ModLoader If I helped you could you please click the thank you button and applaud my karma.
January 13, 201312 yr Rather than instanceof use if(equipped.itemId==wand1.itemId) "you seem to be THE best modder I've seen imo." ~spynathan ლ(́◉◞౪◟◉‵ლ
January 13, 201312 yr Author Thanks for trying to help but it didn't fix the issue Creator of Jobo's ModLoader If I helped you could you please click the thank you button and applaud my karma.
January 13, 201312 yr 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 ლ(́◉◞౪◟◉‵ლ
January 13, 201312 yr Author That is what i am using right now for it. Creator of Jobo's ModLoader If I helped you could you please click the thank you button and applaud my karma.
January 13, 201312 yr 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 ლ(́◉◞౪◟◉‵ლ
January 13, 201312 yr Author I tried that again but it doesn't work i also tried it with @Override. sorry for the hassle Creator of Jobo's ModLoader If I helped you could you please click the thank you button and applaud my karma.
January 14, 201312 yr Oops I made an error, try it with removing the !worl.isremote "you seem to be THE best modder I've seen imo." ~spynathan ლ(́◉◞౪◟◉‵ლ
January 14, 201312 yr Author still doesn't work Creator of Jobo's ModLoader If I helped you could you please click the thank you button and applaud my karma.
January 14, 201312 yr 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)
January 14, 201312 yr 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
January 14, 201312 yr 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. Creator of Jobo's ModLoader If I helped you could you please click the thank you button and applaud my karma.
January 15, 201312 yr Something like entityplayer.inventory.getItemStack(wand1).damageItme(1) "you seem to be THE best modder I've seen imo." ~spynathan ლ(́◉◞౪◟◉‵ლ
January 15, 201312 yr Author when i click on the block with the damage thing it crashes my game at first i thought it was because i forgot to put a enum on it but that still didn't work also the block can't be pillared with because it is checking for updates Creator of Jobo's ModLoader If I helped you could you please click the thank you button and applaud my karma.
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.