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

Ok, so as far as I understand, we can use item damage to set up sub items with the same item id. That is why we use "setMaxDamage(0)". But is it possible to create sub items that still have a damage component?

It still has "damage" component, but it's used for identifying sub-items [field itemDamage in ItemStack].

 

I think you'd have to save your custom damage to NBT and rewrite item rendering to show this special damage. Or from the other side - you'd have to write your own implementation of sub-items using NBT (so rewrite stuff like getting item name shown to a player, icon).

mnn.getNativeLang() != English

If I helped you please click on the "thank you" button.

  • Author

I think I have an idea about that, but I also realize maybe I should just use multiple one-use items instead of one item with damage.

 

Thanks anyway.

I found a way to add meta tools. But the repair recipes in vanilla minecraft does not work.

and this is the way how i add it.

 

public class ItemMetaTool extends Item

{

  private int damage = 0;

  private int maxDamage1;

 

 

  public ItemMetaTool(int id, int max)

  {

      super(id);

      setHasSubtypes(true);

      setMaxDamage(0);

      maxDamage = max;

  }

 

 

  public boolean onDistroyBlock(......)

  {

      damage++;

      return true;

  }

 

 

  public boolean onHitEntity(......)

  {

      damage += 2;

      return true;

  }

 

 

  public void onUpdate(ItemStack par1, World par2, Entity par3, int par4, boolean par5)

  {

        if(par5) //Holding in the hand

        {

            if(damage > maxDamage)

            {

                --par1.stackSize;

            }

        }

        else //Not holding in the hand

        {

          if(damage > maxDamage)

          {

              --par1.stackSize;

          }

        }

    }

}

 

 

with that you can have meta items. but they have to be the same damge. but this is an idea.

Item and Block classes aren't instantiated for every item in the game or every block in the game. That's why we have ItemStacks and chunks containg an array of block ids, and that's why we have NBTTags in ItemStacks and TileEntities.

 

If you make a variable in your Item and do something with that, you won't be able to save it and it will conflict with all other Items of the same type.

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.