Problème Texture forge minecraft 1.8



  • Salutation.

    J'ai un petit soucie de texture ! depuis la version de forge pour minecraft 1.8 on peux plus utiliser setTextureName sur une item, donc je voudrais savoir comme faire !

    se pendent dans assets.monmod.models.item j'ai bien mon cd_musique.json

    
    {
       "parent": "builtin/generated",
       "textures": {
           "layer0": "servermod:items/cd_musique"
       },
       "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 ]
           }
       }
    }
    
    

    Est aucune erreur détecter !

    Mais dans minecraft j'ai un carre rose est noir. comment faire ?


  • Administrateurs

    Je déplaces dans la bonne section, tous ce qui touche à la création de mod va dans la section support pour les moddeurs.

    Ton modèle ne fonctionne pas surement car tu ne l'as pas enregistré dans l'item mesher :

    Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, metadata, new ModelResourceLocation(identifier, "inventory"));
    item il suffit de remplacer par le nom de ton item. Item.getItemFromBlock(bloc) pour un bloc.
    metadata il faut le remplacer par le metadata
    et identifier il faut le remplacer par "modid:nom du fichier json" et le fichier json doit être dans le dossier assets/modid/models/item/ (ce que tu as visiblement compris)

    Attention à faire côté client, donc soit en @SideOnly soit dans le client proxy.
    Et surtout pas sur le preInit, sinon tu vas te manger une NPE, donc à mettre dans init ou dans une fonction appelé dans init ta classe principale.

    Et comme je sais que tu vas en avoir besoin : bonne chance pour cette mise à jour.
    (et moi je vais aller me coucher, debout 6h30 demain x))



  • Merci à toi, j'ai tout simplement ajouter le code dans une méthode et pour chaque item je l'appelle 🙂

    
    public void GameRegistry_Mod(TypeObject type, Object item_and_block, int metadata, String  Name)
       {
        switch(type)
        {
       case Item:
        GameRegistry.registerItem((Item) item_and_block, Name);
        Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register((Item) item_and_block, metadata, new ModelResourceLocation(this.MODID +":" + Name, "inventory"));
        break;
    case Block:
    GameRegistry.registerBlock((Block) item_and_block, Name);
        Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock((Block) item_and_block), metadata, new ModelResourceLocation(this.MODID +":" + Name, "inventory"));
    break;
    default:
    break;
        }
       }
    
    

    Mais je trouve ça très marrent on peux scale les items C'est trop énorme !



  • ok je suis dsl mais j'ai aussi le meme probleme pour ajouter les textures et j'ai pas du tout compris ta solution …

    d'avance merci


  • Administrateurs

    Envoie ton code.



  • package EpicBoss;
    
    import item.itemeggcreeper;
    
    import java.awt.Color;
    
    import Entity.creeperboss;
    import Entity.eggcreeper;
    import Entity.skeletteboss;
    import Entity.zombieboss;
    import cedrikc.epicboss.common.CommonProxy;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.resources.model.ModelResourceLocation;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.entity.EnumCreatureType;
    import net.minecraft.init.Blocks;
    import net.minecraft.item.Item;
    import net.minecraftforge.fml.common.Mod;
    import net.minecraftforge.fml.common.Mod.EventHandler;
    import net.minecraftforge.fml.common.Mod.Instance;
    import net.minecraftforge.fml.common.SidedProxy;
    import net.minecraftforge.fml.common.event.FMLInitializationEvent;
    import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
    import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
    import net.minecraftforge.fml.common.registry.EntityRegistry;
    import net.minecraftforge.fml.common.registry.GameRegistry;
    import net.minecraftforge.fml.relauncher.Side;
    import net.minecraftforge.fml.relauncher.SideOnly;
    
    @Mod(modid = "epicboss", name = "EpicBoss", version = "1.0.0")
    
    public class epicboss
    {
    @Instance("epicboss")
    public static epicboss instance;
    public static final String MODID = "epicboss";
    @SidedProxy(clientSide = "cedrikc.epicboss.client.ClientProxy", serverSide = "cedrikc.epicboss.common.CommonProxy")
    public static CommonProxy proxy;
    public static Item eggcreeper;
    
    @EventHandler
    public void preInit(FMLPreInitializationEvent event)
    {
    
    //oeuf
    eggcreeper = new itemeggcreeper().setUnlocalizedName("eggcreeper").setCreativeTab(CreativeTabs.tabMaterials);
       GameRegistry.registerItem(eggcreeper, "eggcreeper");
    
    }
    
    @EventHandler
    public void init(FMLInitializationEvent event)
    {
    proxy.registerRender();
    
    //zombieboss
    EntityRegistry.registerGlobalEntityID(zombieboss.class, "zombieboss", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB());
    EntityRegistry.registerModEntity(zombieboss.class, "zombieboss", 423, this.instance, 40, 1, true);
    EntityRegistry.addSpawn(zombieboss.class, 70, 1, 2, EnumCreatureType.MONSTER);
    
    //skeletteboss
    EntityRegistry.registerGlobalEntityID(skeletteboss.class, "skeletteboss", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 155, 0).getRGB(), new Color(55, 0, 0).getRGB());
    EntityRegistry.registerModEntity(skeletteboss.class, "skeletteboss", 424, this.instance, 40, 1, true);
    EntityRegistry.addSpawn(skeletteboss.class, 70, 1, 2, EnumCreatureType.MONSTER);
    
    //creeperboss
    EntityRegistry.registerGlobalEntityID(creeperboss.class, "creeperboss", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 100, 0).getRGB(), new Color(10, 0, 0).getRGB());
    EntityRegistry.registerModEntity(creeperboss.class, "creeperboss", 425, this.instance, 40, 1, true);
    EntityRegistry.addSpawn(creeperboss.class, 70, 1, 2, EnumCreatureType.MONSTER);
    
    //oeuf
    EntityRegistry.registerModEntity(eggcreeper.class, "eggcreeper", 450, this.instance, 40, 1, true);
    
    }
    
    @EventHandler
    public void postInit(FMLPostInitializationEvent event)
    {
    
    }
    
    }
    

    j'ai pas de texture pour mon oeuf de creeper


  • Administrateurs

    Dans ta fonction init ajoute :

    if(event.getSide().isClient()
    {
    Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(eggcreeper, 0, new ModelResourceLocation("epicboss:eggcreeper", "inventory"));
    }
    

    Ensuite il faut que tu créer un fichier json dans ton dossier assets/epicboss/models/item/ nommé eggcreeper.json

    Dedans mets :

    {
      "parent": "builtin/generated",
      "textures": {
          "layer0": "epicboss:items/eggcreeper"
      },
      "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 ]
          }
      }
    }
    


  • aurelien974 comment a tu fais pour avoir une aussi grosse épée (oui désoler je suis un newbie dans le moding)

    Edit j'ai trouvé merci



  • cool merci !!!! par contre quand je lance l'oeuf de creeper j'ai un vieu cube blanc ^^ j'ai la texture que si je le tien en main



  • Perso j'essaye de créer un block sauf sa ne marche pas j'ai essayer sa:

    if(event.getSide().isClient())

    {
    Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(testblock), 0, new ModelResourceLocation("mine:testblock", "inventory"));
    }
    }


  • Administrateurs

    @'geekuko':

    cool merci !!!! par contre quand je lance l'oeuf de creeper j'ai un vieu cube blanc ^^ j'ai la texture que si je le tien en main

    Quand tu le lance, c'est à dire ? Quand tu le jette par terre ? Normalement il utilise la même texture donc je ne vois pas pourquoi il ferrai ça 😕

    @'darkvince37':

    Perso j'essaye de créer un block sauf sa ne marche pas j'ai essayer sa:

    if(event.getSide().isClient())

    {
    Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(testblock), 0, new ModelResourceLocation("mine:testblock", "inventory"));
    }
    }

    Pour les blocs le fichier json est différent (regarde ceux de Minecraft) et il en faut 3.



  • Voilà les 2 que j'ai trouver j'ai pas trouver le 3 éme:

    ​{
    
        "parent": "block/cube_all",
        "textures": {
            "all": "blocks/testblock"
        }
    }
    
    
    ​{
    
        "parent": "block/cube_mirrored_all",
        "textures": {
            "all": "blocks/testblock"
        }
    }
    
    

  • Administrateurs

    Il y en a un qui doit aller dans le dossier blockstats, un dans models/item et un dernier dans models/block



  • pardon j'ai pas precisé mais mon creeperegg se lance comme un oeuf de poule lol et c'est cette texture la que j'ai pas


  • Administrateurs

    C'est ton code de rendu de projectile qui n'est pas bon dans ce cas.
    Regarde le code du rendu de la boule de neige.



  • ok cool j'ai creer le render de l'oeuf car j'avais zapé lol

    en revenche pour le mettre dans les proxy c'est une autre affaire …

    render de mon item qui est un projectile (que j'ai renomé dynamite au lieu de eggcreeper)

    package Render;
    import net.minecraft.client.renderer.GlStateManager;
    import net.minecraft.client.renderer.entity.Render;
    import net.minecraft.client.renderer.entity.RenderItem;
    import net.minecraft.client.renderer.entity.RenderManager;
    import net.minecraft.client.renderer.texture.TextureMap;
    import net.minecraft.entity.Entity;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.util.ResourceLocation;
    import net.minecraftforge.fml.relauncher.Side;
    import net.minecraftforge.fml.relauncher.SideOnly;
    @SideOnly(Side.CLIENT)
    public class renderdynamite extends Render
    {
       protected final Item field_177084_a;
       private final RenderItem field_177083_e;
       private static final String __OBFID = "CL_00001008";
       public renderdynamite(RenderManager p_i46137_1_, Item p_i46137_2_, RenderItem p_i46137_3_)
       {
           super(p_i46137_1_);
           this.field_177084_a = p_i46137_2_;
           this.field_177083_e = p_i46137_3_;
       }
       public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float partialTicks)
       {
           GlStateManager.pushMatrix();
           GlStateManager.translate((float)x, (float)y, (float)z);
           GlStateManager.enableRescaleNormal();
           GlStateManager.scale(0.5F, 0.5F, 0.5F);
           GlStateManager.rotate(-this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F);
           GlStateManager.rotate(this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F);
           this.bindTexture(TextureMap.locationBlocksTexture);
           this.field_177083_e.renderItemModel(this.func_177082_d(entity));
           GlStateManager.disableRescaleNormal();
           GlStateManager.popMatrix();
           super.doRender(entity, x, y, z, p_76986_8_, partialTicks);
       }
       public ItemStack func_177082_d(Entity p_177082_1_)
       {
           return new ItemStack(this.field_177084_a, 1, 0);
       }
       protected ResourceLocation getEntityTexture(Entity entity)
       {
           return TextureMap.locationBlocksTexture;
       }
    }
    

    et ma class proxy

    package cedrikc.epicboss.client;
    import Entity.dynamite;
    import Render.renderdynamite;
    import net.minecraft.client.Minecraft;
    import net.minecraft.init.Items;
    import net.minecraftforge.fml.client.registry.RenderingRegistry;
    import cedrikc.epicboss.common.CommonProxy;
    public class ClientProxy extends CommonProxy
    {
    @Override
    public void registerRender()
    {
    System.out.println("m�thode c�t� client");
    RenderingRegistry.registerEntityRenderingHandler(dynamite.class, new renderdynamite(Minecraft.getMinecraft().getRenderManager(), epicboss.dynamite, null));
    }
    @Override
    public void registerTileEntityRender()
    {
    
    }
    }
    

    que mettre a la place de "null" ?car la quand je le lance ca crash



  • merci d'utiliser les balise java et de créer un nouveau topic


  • Administrateurs

    Logiquement, Minecraft.getMinecraft().getRenderItem()



  • merciiiiii ca marche nikel !!!



  • Pour faire une grosse Epee il faut modifier dans exemple(assets/epicboss/models/item/eggcreeper.json)

    
    {
    "parent": "builtin/generated",
    "textures": {
    "layer0": "epicboss:items/eggcreeper"
    },
    "display": {
    "thirdperson": {
    "rotation": [ 0, 90, -35 ],
    "translation": [ 0, 1.25, -3.5 ],
    "scale": [ 1.7, 1.7, 1.7 ] //ici pour modifier
    },
    "firstperson": {
    "rotation": [ 0, -135, 25 ],
    "translation": [ 0, 4, 2 ],
    "scale": [ 1.7, 1.7, 1.7 ] //ici pour modifier
    }
    }
    }