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

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.

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

  • Author

I want my speacel pick to give the spawner placer item when it breaks vinella spawners.

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)

  • Author

I will try that if I can't get the pick working I will just make and item with on use

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

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

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.