Posted May 18, 201312 yr Does anyone know how to make a custom pick that when it breaks a block (In my case a spawner) it gives back a sertion block or item on the ground (In my case my Spawner Placer Item)? I don't want to use ASM or anything like that to do this because it is more difficult then this.
May 18, 201312 yr Do you want the block to drop the spawner item or the item to turn into the spawner item or the spawner item just be added into your inventory? This question is quite diverse I am Mew. The Legendary Psychic. I behave oddly and am always playing practical jokes. I have also found that I really love making extremely long and extremely but sometimes not so descriptive variables. Sort of like what I just did there
May 18, 201312 yr Author I want my speacel pick to give the spawner placer item when it breaks vinella spawners.
May 18, 201312 yr Not sure if this would work, but there is the following method which could be used to get the NBTTags and such when the block starts to be broken. This could be a bit of a work around if you don't want to use asm, as you may be able to save the tile entity from the parameters given, then give the player the item when the block is broken. no tested it though as don't have too much time to play about with these things at the moment /** * Called before a block is broken. Return true to prevent default block harvesting. * * Note: In SMP, this is called on both client and server sides! * * @param itemstack The current ItemStack * @param X The X Position * @param Y The X Position * @param Z The X Position * @param player The Player that is wielding the item * @return True to prevent harvesting, false to continue as normal */ public boolean onBlockStartBreak(ItemStack itemstack, int X, int Y, int Z, EntityPlayer player) { return false; } my thinking is that you could use player.worldObj.getBlockTileEntity(X, Y, Z) to save the tile-entity before it is broken, then assign the data to an item in the onBlockDestroyed method, which would then get spawned in the world. Of cause you would have to check that the block is a spawner or whatever, and remove the data from the item if the player stops breaking the block. let me know if this helps (again i've not tried this, but to me it looks possible like this) github
May 18, 201312 yr Author I will try that if I can't get the pick working I will just make and item with on use
May 18, 201312 yr Author Do you know how to get the Mobid out of the tilteenity or at lest the NBT Tag is under I can find the data for the mobid but I can find what NBT tag I need to read it.
May 18, 201312 yr again not too sure about this one, just trying to be helpful. try calling the writeToNBT(NBTTagCompound) method in the TileEntity, as it adds this par1NBTTagCompound.setString("EntityId", this.getEntityNameToSpawn()); to the tagCompound. I'm guessing that's what you're looking for. Looking further through the code before i post this, you can call func_98049_a().getEntityNameToSpawn() from the TileEntityMobSpawner which will return the mobID... I think github
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.