(Bienvenue chez moi)
Et voila ske ça donne
Merci jglrxavpok
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 TileEntitySpecialRenderer
Tu 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 fois
Je 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
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