Posted August 20, 201213 yr is there any kind of event listener in some hidden part of forge that will pop up when a block is broken ? i've checked in the world events and in the entity , entity living , and entity player , but the closest thing is the start to break , witch i dont want to use cause it'd cause lots of exploding guns. now just to clarify i don't want the event to be on a block , cause i'm checking if an item the player has is in their hand when they break it , not ,for example, if should the block explode if not harvested properly. what i want to do is make it so if some one breaks a block with a gun , the next time the gun is used it will explode in their hands.
August 20, 201213 yr Put your check in func_77660_a (I don't know it's non obfuscated name, it has that name in my de-obfuscated code) for the gun. That method is what damages the tool when it finishes destroying a block. public boolean func_77660_a(ItemStack par1ItemStack, World par2World, int par3, int par4, int par5, int par6, EntityLiving par7EntityLiving) { //Returns true when a block is broken boolean result = super.func_77660_a(par1ItemStack, par2World, par3, par4, par5, par6, par7EntityLiving); if(result == true) { this.setGunToExplode(); } return result; } You can also make it happen on hit by putting your check in getStrVsBlock code for the gun. public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block) { if(par2Block != null) { //We are hitting against a block if(par2Block.blockMaterial != Material.colth) { //If we hit any material other than ones that are cloth based, set the explode flag. this.setGunToExplode(); } } return 1.0F; }
August 20, 201213 yr Author TY , the func_77660_a works =D but not how you had it set up , cause that function always returns false , so with a quick tweak i got my exploding guns
August 20, 201213 yr That was a copy paste error, I meant to return "result", I have updated my example.
August 21, 201213 yr Author didnt see that but i fixed it when typing it in any ways the problem is the super.func_77660_a() always returns false its hard coded that way in the parent . so i just made it so when ever it calls that function to make the gun be set to explode
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.