Rendu d'item avec un model techne
-
Merci mais j’ai encore 2 problèmes :
package fr.altiscraft.altiscraft.common; import org.lwjgl.opengl.GL11; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; public class ItemPanneauInterditRender implements IItemRenderer { protected ItemPanneauInterditRender model; protected static final ResourceLocation texture = new ResourceLocation("ModAltisCraft:textures/items/ItemPanneauInterdit.png"); public ItemPanneauInterditRender () { model = new ItemPanneauInterditRender(); } @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { switch(type) { case EQUIPPED: return true; default: return false; } } @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return false; } @Override public void renderItem(ItemRenderType type, ItemStack item, Object… data) { switch(type) { case EQUIPPED: { GL11.glPushMatrix(); Minecraft.getMinecraft().renderEngine).func_110577_a(texture); model.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); GL11.glPopMatrix(); break; } default: break; } }
Au .func_110577_a(texture); ce n’est pas une méthode reconnue, il ne me propose que : Add cast to method receiver
A model.render il faut définir render ce que je fais et ça me donne ça : private void render(Entity entity, float f, float g, float h, float i, float j, float k) { }
Il y a t’il encore besoin de modification ?
-
Utilise model.renderAll() au lieu de model.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
Pour le func_110577_a remplace par bindTexture -
La console me spam ceci maintenant je ne comprends pas d’où vient le problème :S
at fr.altiscraft.altiscraft.common.ItemPanneauInterditRender.<init>(ItemPanneauInterditRender.java:19)
package fr.altiscraft.altiscraft.common; import org.lwjgl.opengl.GL11; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; public class ItemPanneauInterditRender implements IItemRenderer { protected ItemPanneauInterditRender model; protected static final ResourceLocation texture = new ResourceLocation("ModAltisCraft:textures/items/ItemPanneauInterdit.png"); public ItemPanneauInterditRender () { model = new ItemPanneauInterditRender(); } @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { switch(type) { case EQUIPPED: return true; default: return false; } } @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return false; } @Override public void renderItem(ItemRenderType type, ItemStack item, Object… data) { switch(type) { case EQUIPPED: { GL11.glPushMatrix(); Minecraft.getMinecraft().renderEngine.bindTexture(texture); GL11.glPopMatrix(); break; } default: break; } } public void renderAll() { } private void render(Entity entity, float f, float g, float h, float i, float j, float k) { } } ```</init>
-
protected ItemPanneauInterditRender model;
C’est ton modèle que tu es sensé mettre ici …
public void renderAll() {
}private void render(Entity entity, float f, float g, float h, float i, float j, float k) {
}
Ces méthodes n’ont rien à faire là. -
Voilà maintenant ma classe :
package fr.altiscraft.altiscraft.common; import org.lwjgl.opengl.GL11; import fr.altiscraft.altiscraft.client.ModelBlockPanneauInterdit; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; public class ItemPanneauInterditRender implements IItemRenderer { protected ModelBlockPanneauInterdit model; protected static final ResourceLocation texture = new ResourceLocation("ModAltisCraft:textures/items/ItemPanneauInterdit.png"); public ItemPanneauInterditRender () { model = new ModelBlockPanneauInterdit(); } @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { switch(type) { case EQUIPPED: return true; default: return false; } } @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return false; } @Override public void renderItem(ItemRenderType type, ItemStack item, Object… data) { switch(type) { case EQUIPPED: { GL11.glPushMatrix(); GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); Minecraft.getMinecraft().renderEngine.bindTexture(texture); GL11.glPopMatrix(); break; } default: break; } } }
Mais lorsque je touche au glRotate rien ne se passe pour tous les rendu et maintenant le rendu dans le monde du panneau est invisible… et les panneaux se déplacent tels des Slenders… :S Une matrix pas fermé ?
-
GL11.glPushMatrix(); GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); Minecraft.getMinecraft().renderEngine.bindTexture(texture); GL11.glPopMatrix();
Il te manque model.renderAll() avant le GL11.glPopMatrix();.
Pour le modèle dans le monde aucune idée
Mais à mon avis comme tu utilise un IItemRenderer tu devrais l’utiliser pour tous ce qui rendu de l’inventaire et retirer ce que tu as dans le TESRInventoryRenderer (seulement ce qui concerne ce bloc, pas ce qui concerne les autres) -
Je ne vois plus l’item dans la main et mon slender est toujours présent maintenant voici ma classe :
package fr.altiscraft.altiscraft.common; import org.lwjgl.opengl.GL11; import fr.altiscraft.altiscraft.client.ModelBlockPanneauInterdit; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; public class ItemPanneauInterditRender implements IItemRenderer { protected ModelBlockPanneauInterdit model; protected static final ResourceLocation texture = new ResourceLocation("ModAltisCraft:textures/items/ItemPanneauInterdit.png"); public ItemPanneauInterditRender () { model = new ModelBlockPanneauInterdit(); } @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { switch(type) { case EQUIPPED: return true; default: return false; } } @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return false; } @Override public void renderItem(ItemRenderType type, ItemStack item, Object… data) { switch(type) { case EQUIPPED: { GL11.glPushMatrix(); GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); Minecraft.getMinecraft().renderEngine.bindTexture(texture); model.renderAll(); GL11.glPopMatrix(); break; } default: break; } } }
-
protected static final ResourceLocation texture = new ResourceLocation(“ModAltisCraft:textures/items/ItemPanneauInterdit.png”);
Pas de maj au modid ->
protected static final ResourceLocation texture = new ResourceLocation(“modaltiscraft:textures/items/ItemPanneauInterdit.png”);
Pour le reste c’est pas normal, à la limite on regarde ça ensemble sur ts à l’occasion. -
Ok je vais faire ça et je serai sur ts demain le soir si tu es co laisses toi en AFK je te laisserai un message
-
Bonjour,
J’essaye de mettre mon model Techne mais impossible !
De plus j’ai deux erreurs :public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); }
Ici au niveau du deuxième “setRotationAngles”
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { super.render(entity, f, f1, f2, f3, f4, f5); setRotationAngles(f, f1, f2, f3, f4, f5, entity); Garde.render(f5); Manche.render(f5); Lame1.render(f5); Shape1.render(f5); Shape2.render(f5); Shape3.render(f5); Shape4.render(f5); Shape5.render(f5); Shape6.render(f5); Shape8.render(f5); Shape9.render(f5); }
Et là au niveau du “super.render” le “render” est souligné
Pour les deux (quand je passe la souris dessus) sa me dis “The method setRotationAngles in the type ModelBase is not applicable for the argument”
Voila j’espère que vous pourrais m’aider ! -
Utilise le correcteur de SCAREX : http://www.scarex.fr/model_corrector.php
-
Ok je test sa merci
Envoyé de mon SM-G357FZ en utilisant Tapatalk
-
J’ai essayé mais je comprend pas la case “Nom du Package”
EDIT : Finalement j’ai compris et merci tu est un Dieu ! -
Tutoriel toujours valable pour la 1.8 ?
-
Non, existe plus du tout. Maintenant faut utiliser les json.
-
Yep. Si c’est pour faire des entités.
-
Meeh
J’étais déja entrain de créer mon model techne
C’est plus possible du tout du tout ?
Ou c’est non-conseillé ? -
C’est possible il me semble, mais TRES déconseillé.
(C’est ce que je voulais rajouter dans mon logiciel de modélasition mais j’attends toujours des dev OpenGL pour faire le rendu des models dans le logiciel)
-
Pleure beaucoup
J’aime pas utiliser le logiciel de Craysifh pour les .json, j’aime pas sa manière de gérer les textures. -
C’est la manière dont minecraft gère les textures des items. C’est sur avec les modèles c’est plus simple. Mais les modèles vont surement disparaitre à l’avenir tous comme les rendus TESR.