Jump to content

Pickaxe that gives back a sertion Items?


Chibill

Recommended Posts

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.

Link to comment
Share on other sites

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 :P

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 xD

Link to comment
Share on other sites

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)

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.



×
×
  • Create New...

Important Information

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