Résolu 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 ?
-
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
-
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
-
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”));
}
} -
@‘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" } }
-
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
-
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
-
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 } } }