• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Rendre une partie d'un mob invisible

    Sans suite
    1.7.x
    3
    4
    1408
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Vebert
      Vebert last edited by

      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 Reply Last reply Reply Quote 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

        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 Reply Last reply Reply Quote 0
        • jglrxavpok
          jglrxavpok Modérateurs last edited by

          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 Reply Last reply Reply Quote 0
          • Vebert
            Vebert last edited by

            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 Reply Last reply Reply Quote 0
            • 1 / 1
            • First post
              Last post
            Design by Woryk
            Contact / Mentions Légales

            MINECRAFT FORGE FRANCE © 2018

            Powered by NodeBB