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.

[1.9] Item texture oversized,wonky held orient, and not affected by JSON changes

Featured Replies

Posted

Edit: Solved by derf6060 below.

 

I am a new modder and have been following Pahimar's video tutorial

. I understand that in Minecraft 1.8+, items now require the use of a JSON file. To the best of my ability I have implemented the item, file, and JSON.

 

The item I created is onyx. I copied the vanilla diamond item texture, made no changes to its size, made it black, and placed it in

<project folder>/assets/<modid>/textures/items/onyx.png

 

When I launch the game, the texture loads. However, it is extremely large when on the ground and is oriented differently than other items when held in hand, which I assume is because of its size. I modified the JSON to be empty and it caused the item to have a missing texture. When I fix it, the texture loads properly, so the JSON is being read. However, if I modify the paramters rotation, translation, and scale, no changes are seen in the game. How do I fix this so that the item is the same size and orientation in hand as diamond/other items and can be modified by the JSON?

 

Album of issue:

Full code: https://github.com/EstebanZapata/ObsidianTools

latest.log: http://pastebin.com/g1sJu2tr

 

Inside main mod file:

@Mod.EventHandler
    public void init(FMLInitializationEvent event) {
        // Substring 5 to get rid of "item."
        Minecraft.getMinecraft().getRenderItem().getItemModelMesher()
                .register(ModItems.onyx, 0, new ModelResourceLocation(ModItems.onyx.getUnlocalizedName().substring(5) ,"inventory"));

    }

 

ModItems:

public final class ModItems {
    public static final ItemOT onyx = new ItemOnyx();

    public static void init() {
        GameRegistry.registerItem(onyx, "onyx");
    }
}

 

Custom base item class:

public class ItemOT extends Item{
    public ItemOT() {
        super();

    }

    @Override
    public String getUnlocalizedName() {
        return String.format("item.%s%s", Textures.RESOURCE_PREFIX, getUnwrappedUnlocalizedName(super.getUnlocalizedName()));
        //item.ObsidianTools:onyx.name
    }

    @Override
    public String getUnlocalizedName(ItemStack itemStack) {
        return String.format("item.%s%s", Textures.RESOURCE_PREFIX, getUnwrappedUnlocalizedName(super.getUnlocalizedName()));
    }

    protected String getUnwrappedUnlocalizedName(String unlocalizedName) {
        return unlocalizedName.substring(unlocalizedName.indexOf(".") + 1);
    }
}

 

JSON:

{
  "parent":"builtin/generated",
  "textures": {
    "layer0":"obsidiantools:items/onyx"
  },
  "display": {
    "thirdperson": {
      "rotation": [ -90, 0, 0 ],
      "translation": [ 0, 1, -3 ],
      "scale": [ 0.55, 0.55, 0.55 ]
    },
    "firstperson": {
      "rotation": [ 0, -135, 25 ],
      "translation": [ 0, 4, 2 ],
      "scale": [ 1.7, 1.7, 1.7 ]
    }
  }
}

Json system changed slightly from 1.8 to 1.9 check out the item model named generated in the vanilla assets for all the rotations.

Did you really need to know?

The two json class that you should extends is...

 

item/generated class

{
    "parent": "item/generated"
}

 

and the handheld class

{
    "parent": "item/handheld"
}

 

The only difference between these class json classes is that "item/generated" is a basic item with a simple orientation while "item/handheld" is used for tools, sword, or some item that the player can hold in each hand.

  • Author

The two json class that you should extends is...

 

item/generated class

{
    "parent": "item/generated"
}

 

and the handheld class

{
    "parent": "item/handheld"
}

 

The only difference between these class json classes is that "item/generated" is a basic item with a simple orientation while "item/handheld" is used for tools, sword, or some item that the player can hold in each hand.

 

Thank you so much! I changed builtin/generated to item/generated and it worked.

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.