Jump to content

Recommended Posts

Posted

i been harvesting the minecraft classes for hours and just dont ge it.

 

i create a meta item named multitextura  using like model items.coal and i have the multitextura showing all the six subitems i set in mi custom but is not loading the textures 

 

well if i declare textures using

Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(MercenaryModItems.multitextura, 0, new ModelResourceLocation("modmercenario:multitextura" , "inventory"));

 

it load the texture just for the item multitextura0, the tutorial say i must add

 

ModelBakery.addVariantName(MercenaryModItems.multitextura, new String[]{"multitextura1", "multitextura2", "multitextura3"});

 

notese i have create multitextura1.json multitextura2.json multitextura3.json pointing to the textures to this sub items

but is not working and fuckup the texture for multitextura  single item

 

scavengin the code i found in net.minecraft.client.resources.model.ModelBakery in the line 354  the coal charcoal declaration and i been using that for example and

.minecraft/versions/1.8/1.8/assets/minecraft/models/item/charcoal.json

.minecraft/versions/1.8/1.8/assets/minecraft/models/item/coal.json

for my json's  files

 

 

 

soo what im doing  wrong  can someone point mi in the direction or an example of  subitems working ??

 

 

 

 

 

 

 

 

here is the code _________________________________________________________________________

 

package mercenarymod.items.multitextura;

 

import java.util.List;

 

import net.minecraft.item.EnumAction;

import net.minecraft.item.Item;

import net.minecraft.item.ItemStack;

import net.minecraft.init.Items;

import net.minecraft.stats.StatList;

import net.minecraft.world.World;

import mercenarymod.materialesMercenarios;

import mercenarymod.Mercenary;

import net.minecraft.creativetab.CreativeTabs;

import net.minecraft.enchantment.Enchantment;

import net.minecraft.enchantment.EnchantmentHelper;

import net.minecraft.entity.player.EntityPlayer;

import net.minecraft.entity.projectile.EntityArrow;

import net.minecraftforge.fml.common.registry.GameRegistry;

import net.minecraftforge.fml.relauncher.Side;

import net.minecraftforge.fml.relauncher.SideOnly;

 

 

 

 

public class multitextura extends Item{

 

public static String name = "multitextura";

 

 

public multitextura(){

 

// setUnlocalizedName(Mercenary.MODID + "_" + name);

GameRegistry.registerItem(this, name);

setCreativeTab(Mercenary.herramientas);

this.setHasSubtypes(true);

this.maxStackSize = 1;

 

;}

 

public String getUnlocalizedName(ItemStack stack)

    {

       

int m= stack.getMetadata();

 

if (m == 0){return name+"0" ;}

if (m == 1){return name+"1" ;}

if (m == 2){return name+"2" ;}

if (m == 3){return name+"3" ;}

if (m == 4){return name+"4" ;}

if (m == 5){return name+"5" ;}

 

return name+"0";

   

    }

 

@SideOnly(Side.CLIENT)

    public void getSubItems(Item itemIn, CreativeTabs tab, List subItems)

    {

        subItems.add(new ItemStack(itemIn, 1, 0));

        subItems.add(new ItemStack(itemIn, 1, 1));

        subItems.add(new ItemStack(itemIn, 1, 2));

        subItems.add(new ItemStack(itemIn, 1, 3));

        subItems.add(new ItemStack(itemIn, 1, 4));

        subItems.add(new ItemStack(itemIn, 1, 5));

       

             

       

    }

}

 

 

Posted

I think you must implement the method getIcon as you made with getUnlocalizedName type:

 

 

 @Override 
public String getIcon(int meta)
    {
      
      if (meta == 0){return texture0}
      if (meta == 1){return texture1}
      if (meta == 2){return texture2}
      if (meta == 3){return texture3}
      if (meta == 4){return texture4}
      if (meta == 5){return texture5}
      
      return texture0;
    
    }

Posted

i been experiment whit code i found something

 

if i take my multiitem and do

 

registrarTextura.item(MercenaryModItems.multitextura,0,"multitextura");

registrarTextura.item(MercenaryModItems.multitextura,1,"pica_carbon_carbon");

registrarTextura.item(MercenaryModItems.multitextura,2,"pala_carbon_carbon");

   

but thas mi resgistrar textura class and is equal to doo

 

 

Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(MercenaryModItems.multitextura, 0, new ModelResourceLocation("modmercenario:multitextura" , "inventory"));

Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(MercenaryModItems.multitextura, 1, new ModelResourceLocation("modmercenario:pica_carbon_carbon" , "inventory"));

Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(MercenaryModItems.multitextura, 2, new ModelResourceLocation("modmercenario:pala_carbon_carbon" , "inventory"));

 

 

whith that i get mi multitexture subitems get

 

multitextura0 whith  texture 0 like it must be

 

multitextura1 whith  mi pica texture

 

multitextura2 whith  mi pala texture

 

 

if i could make  custome  files.json  whithout declarated and item whit the same it would be great .

Posted

At least 

realize how to use the ModelBakery  is harder when no examples are avaliable

 

firts is true

you can create a custome texture linkid to a custom json file no matter names  .but you must load this json whith an existing item no matter what but existing and registered

 

 

here an example:

 

i take a ramdom picture from internet  this  http://www.mildred.co/issueassets/22/14RSpaperbagdog.jpg  download resize convert to png whit gimp and named  ramdon.png, store in

forge-1.8-11.14.0.1261-1.8-src/src/main/resources/assets/modmercenario/textures/items/ramdom/ramdon.png

 

 

then a create a json file in

forge-1.8-11.14.0.1261-1.8-src/src/main/resources/assets/modmercenario/models/item/namedhowiwant.json

 

and set like this

_____________________________________________

 

{

    "parent": "builtin/generated",

    "textures": {

        "layer0": "modmercenario:items/ramdom/ramdon"

 

    },

    "display": {

        "thirdperson": {

            "rotation": [ 0, 90, -35 ],

            "translation": [ 0, 1.25, -3.5 ],

            "scale": [ 0.85, 0.85, 0.85 ]

        },

        "firstperson": {

            "rotation": [ 0, -135, 25 ],

            "translation": [ 0, 4, 2 ],

            "scale": [ 1.7, 1.7, 1.7 ]

        }

    }

}

 

________________________________________________

 

 

then in mi register textures file,  mi case MercenaryModTexturas

 

i set  namedhowiwant  to the apple item, whatever item you chose work

 

ModelBakery.addVariantName(Items.apple, new String[]{"modmercenario:namedhowiwant"});

 

the apple item is not afected in any way just used force minecraft to load namedhowiwant.json

 

and now i can use namedhowiwant.json to set the texture of what ever mi items i whant

 

registrarTextura.item(MercenaryModItems.espada_carbon_carbon,0,"namedhowiwant");   

now  this sword has the doogy image from internet loaded like texture

 

// i set method registrarTextura.item(item , metadata , jsonName); way to shorten code

 

 

 

 

   

  • 3 months later...
Posted

I know this is marked as solved but i just wanted to post my code and how it works for me.

 

My item class

[embed=425,349]package com.lothrazar.samscontent.item;

 

import java.util.ArrayList;

import java.util.List;

 

import net.minecraft.creativetab.CreativeTabs;

import net.minecraft.entity.effect.EntityLightningBolt;

import net.minecraft.init.Blocks;

import net.minecraft.init.Items;

import net.minecraft.item.EnumDyeColor;

import net.minecraft.item.Item;

import net.minecraft.item.ItemStack;

import net.minecraft.item.ItemTool;

import net.minecraft.util.BlockPos;

import net.minecraftforge.event.entity.player.PlayerInteractEvent;

import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;

import net.minecraftforge.fml.common.registry.GameRegistry;

import net.minecraftforge.fml.relauncher.Side;

import net.minecraftforge.fml.relauncher.SideOnly;

 

import com.google.common.collect.Lists;

import com.lothrazar.samscontent.ModLoader;

import com.lothrazar.util.*;

 

public class ItemBaseWand extends Item

{

public ItemBaseWand()

{

super();

        this.setHasSubtypes(true);

        this.setMaxDamage(0);

        this.setMaxStackSize(1);

this.setCreativeTab(ModLoader.tabSamsContent);

/*

*

* ModelBakery.class

* ItemDye.class

*

*    this.variantNames.put(Items.dye, Lists.newArrayList(new String[] {"dye_black", "dye_red", "dye_green", "dye_brown", "dye_blue", "dye_purple", "dye_cyan", "dye_silver", "dye_gray", "dye_pink", "dye_lime", "dye_yellow", "dye_light_blue", "dye_magenta", "dye_orange", "dye_white"}));

     

* */

}

@Override

    public String getUnlocalizedName(ItemStack stack)

    {

        int i = stack.getMetadata();

        return super.getUnlocalizedName() + "_" + i;

    }

 

public final static int MAX_META = 19;

@Override

    @SideOnly(Side.CLIENT)

    public void getSubItems(Item itemIn, CreativeTabs tab, List subItems)

    {

        for (int i = 0; i < MAX_META; ++i)

        {

            subItems.add(new ItemStack(itemIn, 1, i));

        }

    }

 

public static void addRecipe()

{

GameRegistry.addRecipe(new ItemStack(ItemRegistry.baseWand)

,"beb"

," b "

," b "

, 'e', Items.emerald

, 'b', Items.blaze_rod  );

 

if(ModLoader.configSettings.uncraftGeneral)

GameRegistry.addSmelting(ItemRegistry.wandBuilding, new ItemStack(Items.emerald,1,0),0);

}

@SubscribeEvent

public void onPlayerInteract(PlayerInteractEvent event)

  {     

ItemStack held = event.entityPlayer.getCurrentEquippedItem(); 

if(held == null) { return; }//empty hand so do nothing

 

if(held.getItem() != ItemRegistry.baseWand ) {return;}

 

if( event.action.LEFT_CLICK_BLOCK == event.action )//TODO: is left click a good strat

{   

 

int meta = held.getItemDamage();

 

if(meta >= this.MAX_META)

held.setItemDamage(0);

else

held.setItemDamage(meta + 1);//TODO: shift goes backword

 

System.out.println(held.getItemDamage());

}

else

{

 

}

  }

}

[/embed]

 

Of course i register the item the normal way

 

[embed=425,349] GameRegistry.registerItem(item, name);[/embed]

 

And in my client proxy I have this:

 

[embed=425,349] ItemModelMesher mesher = Minecraft.getMinecraft().getRenderItem().getItemModelMesher();

 

        String name;

        Item item;

 

        for(Block b : BlockRegistry.blocks)

        {

        item = Item.getItemFromBlock(b);

        name = Reference.TEXTURE_LOCATION + b.getUnlocalizedName().replaceAll("tile.", "");

 

  mesher.register(item, 0, new ModelResourceLocation( name , "inventory"));

       

        }

       

 

        for(Item i : ItemRegistry.items)

        { 

        name = Reference.TEXTURE_LOCATION + i.getUnlocalizedName().replaceAll("item.", "");

 

  mesher.register(i, 0, new ModelResourceLocation( name , "inventory"));

       

  System.out.println("iii :: "+name);

        }

     

        for (int i = 0; i < ItemBaseWand.MAX_META; ++i)

        {

  mesher.register(ItemRegistry.baseWand, i, new ModelResourceLocation(Reference.TEXTURE_LOCATION + "base_wand_"+i , "inventory"));

        }

        ModelBakery.addVariantName(ItemRegistry.baseWand, Reference.TEXTURE_LOCATION +"base_wand_0",Reference.TEXTURE_LOCATION +"base_wand_1");

        [/embed]

 

 

Feel free to ask questions or if you want github link.  I am sure i could have done things better or in a different way, i am not an expert.  My item does switch textures when the data value changes from 0,1,2, etc

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.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • When I first heard about Bitcoin back in 2018, I was skeptical. The idea of a decentralized, digital currency seemed too good to be true. But I was intrigued as I learned more about the technology behind it and its potential. I started small, investing just a few hundred dollars, dipping my toes into the cryptocurrency waters. At first, it was exhilarating to watch the value of my investment grow exponentially. I felt like I was part of the future, an early adopter of this revolutionary new asset. But that euphoria was short-lived. One day, I logged into my digital wallet only to find it empty - my Bitcoin had vanished without a trace. It turned out that the online exchange I had trusted had been hacked, and my funds were stolen. I was devastated, both financially and emotionally. All the potential I had seen in Bitcoin was tainted by the harsh reality that with decentralization came a lack of regulation and oversight. My hard-earned money was gone, lost to the ether of the digital world. This experience taught me a painful lesson about the price of trust in the uncharted territory of cryptocurrency. While the technology holds incredible promise, the risks can be catastrophic if you don't approach it with extreme caution. My Bitcoin investment gamble had failed, and I was left to pick up the pieces, wiser but poorer for having placed my faith in the wrong hands. My sincere appreciation goes to MUYERN TRUST HACKER. You are my hero in recovering my lost funds. Send a direct m a i l ( muyerntrusted ( @ ) mail-me ( . )c o m ) or message on whats app : + 1 ( 4-4-0 ) ( 3 -3 -5 ) ( 0-2-0-5 )
    • You could try posting a log (if there is no log at all, it may be the launcher you are using, the FAQ may have info on how to enable the log) as described in the FAQ, however this will probably need to be reported to/remedied by the mod author.
    • So me and a couple of friends are playing with a shitpost mod pack and one of the mods in the pack is corail tombstone and for some reason there is a problem with it, where on death to fire the player will get kicked out of the server and the tombstone will not spawn basically deleting an entire inventory, it doesn't matter what type of fire it is, whether it's from vanilla fire/lava, or from modded fire like ice&fire/lycanites and it's common enough to where everyone on the server has experienced at least once or twice and it doesn't give any crash log. a solution to this would be much appreciated thank you!
    • It is 1.12.2 - I have no idea if there is a 1.12 pack
  • Topics

×
×
  • Create New...

Important Information

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