• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Problème rendu armure

    1.7.x
    1.7.10
    2
    4
    1400
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • ?
      Invité dernière édition par

      Bonjour, bonsoir.

      J’ai ajouter un plastron modélisé dans mon mod le rendu simple quand je ne tiens rien dans la main et que je n’effectue aucune action est bien implémenté. Mais en ce qui concerne les actions pour se protéger, pour utiliser l’arc, pour sneak et pour les autre actions sa ne marche pas. j’ai regardé la class du model biped mais je ne sais pas quoi mettre dans la class de mon item de mon render et de mon model.

      Voici mes codes :

      Le model :

      package tarael;
      
      import org.lwjgl.opengl.GL11;
      
      import net.minecraft.client.model.ModelBiped;
      import net.minecraft.client.model.ModelRenderer;
      import net.minecraft.entity.Entity;
      import net.minecraft.util.MathHelper;
      
      public class PlastronDebut extends ModelBiped
      {
       //fields
         ModelRenderer Shape1;
         ModelRenderer Shape2;
         ModelRenderer Shape3;
         ModelRenderer Shape4;
         ModelRenderer Shape5;
         ModelRenderer Shape6;
         ModelRenderer Shape7;
      
       public PlastronDebut(float f)
       {
       super(f, 0, 64, 64);
         textureWidth = 64;
         textureHeight = 64;
      
           Shape1 = new ModelRenderer(this, 0, 34);
           Shape1.addBox(-4F, -4F, -3F, 6, 5, 6);
           Shape1.setRotationPoint(0F, 0F, 0F);
           Shape1.setTextureSize(64, 64);
           Shape1.mirror = true;
           setRotation(Shape1, 0F, 0F, -0.6283185F);
           Shape2 = new ModelRenderer(this, 0, 40);
           Shape2.addBox(-4F, -2F, -3F, 6, 6, 6);
           Shape2.setRotationPoint(0F, 0F, 0F);
           Shape2.setTextureSize(64, 64);
           Shape2.mirror = true;
           setRotation(Shape2, 0F, 0F, 0F);
           Shape3 = new ModelRenderer(this, 0, 34);
           Shape3.addBox(-2F, -4F, -3F, 6, 5, 6);
           Shape3.setRotationPoint(0F, 0F, 0F);
           Shape3.setTextureSize(64, 64);
           Shape3.mirror = true;
           setRotation(Shape3, 0F, 0F, 0.6457718F);
           Shape4 = new ModelRenderer(this, 0, 40);
           Shape4.addBox(-2F, -2F, -3F, 6, 6, 6);
           Shape4.setRotationPoint(0F, 0F, 0F);
           Shape4.setTextureSize(64, 64);
           Shape4.mirror = true;
           setRotation(Shape4, 0F, 0F, 0F);
           Shape5 = new ModelRenderer(this, 28, 34);
           Shape5.addBox(-4.5F, 0F, -2.5F, 9, 12, 5);
           Shape5.setRotationPoint(0F, 0F, 0F);
           Shape5.setTextureSize(64, 64);
           Shape5.mirror = true;
           setRotation(Shape5, 0F, 0F, 0F);
           Shape6 = new ModelRenderer(this, 29, 34);
           Shape6.addBox(-4F, 0F, -2.9F, 8, 4, 1);
           Shape6.setRotationPoint(0F, 0F, 0F);
           Shape6.setTextureSize(64, 64);
           Shape6.mirror = true;
           setRotation(Shape6, 0F, 0F, 0F);
           Shape7 = new ModelRenderer(this, 29, 34);
           Shape7.addBox(-3F, 4F, -2.7F, 6, 7, 1);
           Shape7.setRotationPoint(0F, 0F, 0F);
           Shape7.setTextureSize(64, 64);
           Shape7.mirror = true;
           setRotation(Shape7, 0F, 0F, 0F);
      
           this.bipedRightArm.addChild(Shape1);
           this.bipedRightArm.addChild(Shape2);
           this.bipedLeftArm.addChild(Shape3);
           this.bipedLeftArm.addChild(Shape4);
           this.bipedBody.addChild(Shape5);
           this.bipedBody.addChild(Shape6);
           this.bipedBody.addChild(Shape7);
      
       }
      
       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);
       }
      
       private void setRotation(ModelRenderer model, float x, float y, float z)
       {
         model.rotateAngleX = x;
         model.rotateAngleY = y;
         model.rotateAngleZ = z;
       }
      
       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);
       }
      
      }
      
      

      Le render:

      package tarael;
      
      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;
      import net.minecraftforge.client.IItemRenderer.ItemRenderType;
      import net.minecraftforge.client.IItemRenderer.ItemRendererHelper;
      
      import org.lwjgl.opengl.GL11;
      
      public class RenderPlastronDebut implements IItemRenderer
      {
      
      protected PlastronDebut model;
      protected static final ResourceLocation texture = new ResourceLocation(ModTarael.MODID + ":textures/models/armor/PlastronDebut.png");
      
      public RenderPlastronDebut ()
      {
      model = new PlastronDebut(0);
      }
      
      @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) {
      // TODO Auto-generated method stub
      return false;
      }
      
      @Override
      public void renderItem(ItemRenderType type, ItemStack item, Object… data)
      {
      switch(type)
      {
      case EQUIPPED:
      GL11.glPushMatrix();
      Minecraft.getMinecraft().renderEngine.bindTexture(texture);
        model.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
      GL11.glPopMatrix();
      break;
      
      default:
      break;
      }
      
      }
      
      }
      
      

      L’item Plastron:

      package tarael;
      
      import net.minecraft.client.model.ModelBiped;
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.EntityLiving;
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.EnumAction;
      import net.minecraft.item.ItemArmor;
      import net.minecraft.item.ItemStack;
      import net.minecraft.world.World;
      import tarael.proxy.ClientProxy;
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      
      public class ItemPlastronDebutArmor extends ItemArmor
      {
      
      public ItemPlastronDebutArmor(ArmorMaterial material, int renderIndex, int armorType)
      {
      super(material, renderIndex, armorType);
      }
      
      public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
      {
      if(stack.getItem() == ModTarael.plastronDebut)
      {
      return ModTarael.MODID + ":textures/models/armor/PlastronDebut.png";
      }
      return ModTarael.MODID + ":textures/models/armor/empty_chest.png";
      }
      
      @Override
      @SideOnly(Side.CLIENT)
      public ModelBiped getArmorModel(EntityLivingBase entityliving, ItemStack stack, int armor)
      {
      return new PlastronDebut(0);
      }
      
      }
      

      Désolé si c’est une erreur assez bête mais je débute sur les modèles des armures.

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

        Au niveau de la fonction getArmorModel fait un instance de ton modèle comme ceci :

        PlastronDebut plastron = new PlastronDebut(0);
        Ensuite en fonction de entityliving, effectue les différentes rotations du modèle avec :
        plastron.Shape2.rotateAngleY = valeur;
        puis à la fin du mets return  plastron;
        Pour les différentes rotations tu peux simplement reprendre le même code que dans RenderBiped il me semble.

        1 réponse Dernière réponse Répondre Citer 0
        • ?
          Invité dernière édition par

          @‘robin4002’:

          Au niveau de la fonction getArmorModel fait un instance de ton modèle comme ceci :

          PlastronDebut plastron = new PlastronDebut(0);
          Ensuite en fonction de entityliving, effectue les différentes rotations du modèle avec :
          plastron.Shape2.rotateAngleY = valeur;
          puis à la fin du mets return  plastron;
          Pour les différentes rotations tu peux simplement reprendre le même code que dans RenderBiped il me semble.

          Et je fais tout dans le getArmorModel ?

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

            Oui, il n’y a pas d’autre solution.
            Il y a un post similaire ici : http://minecraftforgefrance.fr/showthread.php?tid=1868

            1 réponse Dernière réponse Répondre Citer 0
            • 1 / 1
            • Premier message
              Dernier message
            Design by Woryk
            Contact / Mentions Légales

            MINECRAFT FORGE FRANCE © 2018

            Powered by NodeBB