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

    Rendre une partie d'un mob invisible

    Sans suite
    1.7.x
    3
    4
    1436
    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.
    • Vebert
      Vebert dernière édition par

      Bonjours, j’ai créer une nouvelle vache pour mon mod et le but est de la faire grossir ou maigrir.
      Le problème c’est que je ne sais pas du tout par ou mis prendre et malgré une semaine a fouiller les codes de minecraft je n’ais pas compris comment ils marchent.
      Je crois que c’est un changement de texture.

      Ma classe render : ( j’ai utilisé la texture du mouton en deuxième texture le temps des tests )

      
      public class RenderVache extends RenderLiving {
      
      private ModelVache Render = new ModelVache();
      private static final ResourceLocation shearedSheepTextures = new ResourceLocation("textures/entity/sheep/sheep.png");
      private static final ResourceLocation texturevache1 = new ResourceLocation(Main.MODID, "textures/entity/mob_vache.png");
      
      public RenderVache(ModelVache RenderVache, float par2)
      {
      super(new ModelVache(), 0.5F);
      }
      
      /**
      * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture.
      */
      protected ResourceLocation getEntityTexture(MobVache par1MobVache)
      {
      return shearedSheepTextures;
      }
      
      /**
      * Queries whether should render the specified pass or not.
      */
      protected int shouldRenderPass(MobVache par1MobVache, int par2, float par3)
      {
      if (par2 == 0 && !par1MobVache.isfat())
      {
      this.bindTexture(texturevache1);
      return 1;
      }
      else
      {
      return -1;
      }
      }
      
      @Override
      protected ResourceLocation getEntityTexture(Entity var1) {
      return texturevache1;
      }
      }
      

      Voila j’ai un peu pompé le code minecraft du mouton mais je ne vois pas comment changer la texture in game, dans la classe de mon mob j’ai essayé d’appeller la fonction quand on clic sur le mob mais sans réussite.

      public boolean interact(EntityPlayer par1EntityPlayer)
      {
      ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem();
      
      if (itemstack != null && this.isBreedingItem(itemstack))
      {
      –itemstack.stackSize;
      this.shouldRenderInPass(0);
      return true;
      }
      else
      {
      return super.interact(par1EntityPlayer);
      }
      }
      

      Merci de m’avoir lu.

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

        Plutôt que de faire apparaître / disparaître des morceaux du modèle, ça ne serait pas plus simple de réduire / augmenter la tailler ?
        Car c’est facilement faisable avec un GL11.glScale(…).
        Après tu fais une variable dans l’entité de la vache que tu augmente lorsqu’on nourri la vache, et du adapte le glScale en fonction de cette variable.

        1 réponse Dernière réponse Répondre Citer 0
        • jglrxavpok
          jglrxavpok Modérateurs dernière édition par

          Dans ce cas là, il faut un nouveau type de Render uniquement pour cette vache.

          Modérateur sur MFF. 
          Mon Github: http://github.com/jglrxavpok
          Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

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

            J’ai quelque petit problème avec GL11, quand j’utilise une fonction comme GL11.glColor3f(…) ou GL11.glscale(…), j’ai une erreur :

            
            java.lang.RuntimeException: No OpenGL context found in the current thread.
            at org.lwjgl.opengl.GLContext.getCapabilities(GLContext.java:124)
            at org.lwjgl.opengl.GL11.glColor3f(GL11.java:859)
            .....
            
            

            De plus je n’arrive pas a trouver quand est appeler la fonction : ( dans le cas du mouton )

            
            protected int shouldRenderPass(EntitySheep par1EntitySheep, int par2, float par3)
            {
            if (par2 == 0 && !par1EntitySheep.getSheared())
            {
            this.bindTexture(sheepTextures);
            int j = par1EntitySheep.getFleeceColor();
            GL11.glColor3f(EntitySheep.fleeceColorTable[j][0], EntitySheep.fleeceColorTable[j][1], EntitySheep.fleeceColorTable[j][2]);
            return 1;
            }
            else
            {
            return -1;
            }
            }
            
            
            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