Résolu Load .obj
-
Bien entendu. Un TESR et voilà
-
Ho, perso, j’ai trouvé un moyen simpatique qui marche avec seulement 3 classe:
-Un Bloc
-Un TileEntity
-Un TileEntitySpecialRendererTu peux utiliser ce tuto
-
Et la classe principale + Client/Common proxy
-
@‘kevin_68’:
Et la classe principale + Client/Common proxy
Rhooo, voila donc ! Ces classes ne servent à rien !
On peut s’en passer pour une foisJe part en supposant qu’il est logique d’avoir ces classes par défaut dans ses mods
-
Ok merci pour l’éclaircissement.
Car contre pour le rendu 3D on peut utiliser une classe pour tout nos rendu (on précise alors le chemin de la texture et du .obj dans la classe de notre item/block/entité)? -
Il n’y a aucun problème à faire ça
Mais fait attention que les models soient ‘cohérents’: proportionnés les uns par rapport aux autres -
(Bienvenue chez moi)
Et voila ske ça donne
Merci jglrxavpok
-
par contre comme j’ai dit comment faire pour n’utiliser qu’une classe de rendu?
-
Sur ce point-là, c’est plus de l’organisation qu’autre chose, tout dépend comment tu veux le faire et quel est ton “style” de code.
-
bha des classe d’item tout ce qu’il y a de plus normal et la classe de rendu 3D
package Mineralherb; import org.lwjgl.opengl.GL11; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.client.model.IModelCustom; public class Sword3D implements IItemRenderer { private IModelCustom model3D = AdvancedModelLoader.loadModel("/assets/mineralherb/models/weapon/axe_2h_pvphorde_a_01.obj"); private ResourceLocation texture = new ResourceLocation("mineralherb:models/weapon/axe_2h_pvphorde_a_01black.png"); @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { return true; } @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return false; } @Override public void renderItem(ItemRenderType type, ItemStack item, Object… data) { if(type.equals(ItemRenderType.EQUIPPED)) { GL11.glPushMatrix(); GL11.glScalef(2.0F, 2.0F, 2.0F); GL11.glRotatef(-60.0F, 1.0F, 0.0F, 0.0F); GL11.glRotatef(17.0F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(0.20F, -0.035F, 0.25F); Minecraft.getMinecraft().renderEngine.bindTexture(texture); model3D.renderAll(); GL11.glPopMatrix(); } else if (type.equals(ItemRenderType.EQUIPPED_FIRST_PERSON) ) { GL11.glPushMatrix(); Minecraft.getMinecraft().renderEngine.bindTexture(texture); GL11.glTranslatef(2.0F, -0.5f, 2.0f); GL11.glScalef(5.0F, 5.0F, 5.0F); GL11.glRotatef(70.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); model3D.renderAll(); GL11.glPopMatrix(); } else if (type.equals(ItemRenderType.ENTITY) ) { GL11.glPushMatrix(); Minecraft.getMinecraft().renderEngine.bindTexture(texture); GL11.glScalef(0.6F, 0.6F, 0.6F); GL11.glTranslated(0.0, 0.17, 0.0); GL11.glRotated(90, 0, 1, 0); GL11.glRotated(-90, 1, 0, 0); model3D.renderAll(); GL11.glPopMatrix(); } else { GL11.glPushMatrix(); Minecraft.getMinecraft().renderEngine.bindTexture(texture); GL11.glScalef(8.8F, 8.8F, 8.8F); GL11.glTranslated(1.3, 0.9, 0); GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotated(220, 1, 0, 0); model3D.renderAll(); GL11.glPopMatrix(); } } }
-
Dans tu appelles le constructeur de ta classe, ajoutes juste un argument pour donner le modèle+texture
-
ok je vais essayer en bidoulliant
-
Bon je pense que le sujet est résolut