MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Texture dans TileEntityRender

    Planifier Épinglé Verrouillé Déplacé Sans suite
    47 Messages 6 Publieurs 12.4k Vues 1 Watching
    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.
    • Bowser338B Hors-ligne
      Bowser338
      dernière édition par

      sinon je continue le tuto et je vois ce qui se passe

      Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

      1 réponse Dernière réponse Répondre Citer 0
      • DeletedD Hors-ligne
        Deleted
        dernière édition par

        As-tu du nouveau ? Car cela m’intéresse : j’ai le même problème  😞

        1 réponse Dernière réponse Répondre Citer 0
        • DeletedD Hors-ligne
          Deleted
          dernière édition par

          Je n’aime pas up mais là ça presse vraiment donc si quelqu’un a la réponse aidez moi voici ma class :

          mon tesr :

          
          package mrplaigon.psccraft.minesagasmod.client;
          
          import mrplaigon.psccraft.minesagasmod.common.TileEntityBlockHayner;
          import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
          import net.minecraft.tileentity.TileEntity;
          import net.minecraft.util.ResourceLocation;
          
          import org.jglrxavpok.glutils.TessellatorModel;
          import org.lwjgl.opengl.GL11;
          
          public class TileEntityHaynerSpecialRenderer
            extends TileEntitySpecialRenderer
            implements IInventoryRenderer
          {
          
           private static TessellatorModel glmodel0;//tête
           private static final ResourceLocation textureLocation0 = new ResourceLocation(
           "minesagasmod:obj/hayner0.png");
          
           private static TessellatorModel glmodel1;//cheveux
           private static final ResourceLocation textureLocation1 = new ResourceLocation(
          "minesagasmod:obj/hayner1.png");
          
           private static TessellatorModel glmodel2;//corps
           public static final ResourceLocation textureLocation2 = new ResourceLocation(
          "minesagasmod", "obj/hayner1.png");//"minesagasmod:obj/hayner2.png");
           //public static final ResourceLocation textureLocation = new ResourceLocation("cwm", "textures/blocks/legendary_stone_ground.png");
          
            public TileEntityHaynerSpecialRenderer()
            {
              this.glmodel0 = new TessellatorModel("/assets/minesagasmod/obj/hayner0.obj");
              this.glmodel0.regenerateNormals();
          
              this.glmodel1 = new TessellatorModel("/assets/minesagasmod/obj/hayner1.obj");
              this.glmodel1.regenerateNormals();
          
              this.glmodel2 = new TessellatorModel("/assets/minesagasmod/obj/hayner2.obj");
              this.glmodel2.regenerateNormals();
            }
          
            public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float scale)
            {
              //renderTileEntityTestAt((TileEntityBlockHayner)tileentity, x, y, z, scale);
              GL11.glPushMatrix();
              GL11.glTranslated(x + 0.5D, y , z + 0.5D);
              //GL11.glRotatef((float) TileEntityBlockHayner.valeurRotation, 0, -1, 0);
              this.bindTexture(textureLocation0);
              GL11.glScaled(0.011D, 0.0071D, 0.01D);
              this.glmodel0.render();   
              GL11.glPopMatrix();
              //GL11.glShadeModel(7425);
          
              GL11.glPushMatrix();
              GL11.glTranslated(x + 0.5D, y , z + 0.5D);
              this.bindTexture(textureLocation1);
              //GL11.glRotatef((float) TileEntityBlockHayner.valeurRotation, 0, -1, 0);
              GL11.glScaled(0.011D, 0.0071D, 0.01D);
              this.glmodel1.render();   
              GL11.glPopMatrix();
             // GL11.glShadeModel(7425);
          
              GL11.glPushMatrix();
              GL11.glTranslated(x + 0.5D, y , z + 0.5D);
              this.bindTexture(textureLocation2);
              //GL11.glRotatef((float) TileEntityBlockHayner.valeurRotation, 0, -1, 0);
              GL11.glScaled(0.011D, 0.0071D, 0.01D);
              this.glmodel2.render();  
              GL11.glPopMatrix();
              //GL11.glShadeModel(7425);
          
            }
          
            public void renderInventory(double x, double y, double z) 
            {
          
            }
          }
          
          

          La texture se trouve bien dans assets/minesagasmod/obj/

          1 réponse Dernière réponse Répondre Citer 0
          • M Hors-ligne
            MrAzErTy31
            dernière édition par

            Essaye de créer ta ResourceLocation avec 2 arguments : le MODID et le chemin

            ​new ResourceLocation(MODID, "/textures/models …")
            

            Mes mods :

            >! GGButtonMod : http://minecraftforgefrance.fr/showthread.php?tid=1280
            CraftYourMenu : http://minecraftforgefrance.fr/showth…

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

              @‘Julot10085’:

              Je n’aime pas up mais là ça presse vraiment donc si quelqu’un a la réponse aidez moi voici ma class :

              mon tesr :

              
              package mrplaigon.psccraft.minesagasmod.client;
              
              import mrplaigon.psccraft.minesagasmod.common.TileEntityBlockHayner;
              import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
              import net.minecraft.tileentity.TileEntity;
              import net.minecraft.util.ResourceLocation;
              
              import org.jglrxavpok.glutils.TessellatorModel;
              import org.lwjgl.opengl.GL11;
              
              public class TileEntityHaynerSpecialRenderer
                extends TileEntitySpecialRenderer
                implements IInventoryRenderer
              {
              
               private static TessellatorModel glmodel0;//tête
               private static final ResourceLocation textureLocation0 = new ResourceLocation(
               "minesagasmod:obj/hayner0.png");
               
               private static TessellatorModel glmodel1;//cheveux
               private static final ResourceLocation textureLocation1 = new ResourceLocation(
              "minesagasmod:obj/hayner1.png");
               
               private static TessellatorModel glmodel2;//corps
               public static final ResourceLocation textureLocation2 = new ResourceLocation(
              "minesagasmod", "obj/hayner1.png");//"minesagasmod:obj/hayner2.png");
               //public static final ResourceLocation textureLocation = new ResourceLocation("cwm", "textures/blocks/legendary_stone_ground.png");
                
                public TileEntityHaynerSpecialRenderer()
                {
                  this.glmodel0 = new TessellatorModel("/assets/minesagasmod/obj/hayner0.obj");
                  this.glmodel0.regenerateNormals();
                  
                  this.glmodel1 = new TessellatorModel("/assets/minesagasmod/obj/hayner1.obj");
                  this.glmodel1.regenerateNormals();
                  
                  this.glmodel2 = new TessellatorModel("/assets/minesagasmod/obj/hayner2.obj");
                  this.glmodel2.regenerateNormals();
                }
                
                
                 
                public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float scale)
                {
                  //renderTileEntityTestAt((TileEntityBlockHayner)tileentity, x, y, z, scale);
                  GL11.glPushMatrix();
                  GL11.glTranslated(x + 0.5D, y , z + 0.5D);
                  //GL11.glRotatef((float) TileEntityBlockHayner.valeurRotation, 0, -1, 0);
                  this.bindTexture(textureLocation0);
                  GL11.glScaled(0.011D, 0.0071D, 0.01D);
                  this.glmodel0.render();   
                  GL11.glPopMatrix();
                  //GL11.glShadeModel(7425);
                  
                  GL11.glPushMatrix();
                  GL11.glTranslated(x + 0.5D, y , z + 0.5D);
                  this.bindTexture(textureLocation1);
                  //GL11.glRotatef((float) TileEntityBlockHayner.valeurRotation, 0, -1, 0);
                  GL11.glScaled(0.011D, 0.0071D, 0.01D);
                  this.glmodel1.render();   
                  GL11.glPopMatrix();
                 // GL11.glShadeModel(7425);
                  
                  GL11.glPushMatrix();
                  GL11.glTranslated(x + 0.5D, y , z + 0.5D);
                  this.bindTexture(textureLocation2);
                  //GL11.glRotatef((float) TileEntityBlockHayner.valeurRotation, 0, -1, 0);
                  GL11.glScaled(0.011D, 0.0071D, 0.01D);
                  this.glmodel2.render();  
                  GL11.glPopMatrix();
                  //GL11.glShadeModel(7425);
                  
                }
                
              
                public void renderInventory(double x, double y, double z) 
                {
              
                }
              }
              

              La texture se trouve bien dans assets/minesagasmod/obj/

              Dans ce cas là, c’est le .mtl fourni avec le .obj qui gère la texture, rien à voir avec les ResourceLocation, et la texture est bind toute seule.

              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
              • DeletedD Hors-ligne
                Deleted
                dernière édition par

                @‘jglrxavpok’:

                @‘Julot10085’:

                Je n’aime pas up mais là ça presse vraiment donc si quelqu’un a la réponse aidez moi voici ma class :

                mon tesr :

                
                package mrplaigon.psccraft.minesagasmod.client;
                
                import mrplaigon.psccraft.minesagasmod.common.TileEntityBlockHayner;
                import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
                import net.minecraft.tileentity.TileEntity;
                import net.minecraft.util.ResourceLocation;
                
                import org.jglrxavpok.glutils.TessellatorModel;
                import org.lwjgl.opengl.GL11;
                
                public class TileEntityHaynerSpecialRenderer
                  extends TileEntitySpecialRenderer
                  implements IInventoryRenderer
                {
                
                 private static TessellatorModel glmodel0;//tête
                 private static final ResourceLocation textureLocation0 = new ResourceLocation(
                 "minesagasmod:obj/hayner0.png");
                 
                 private static TessellatorModel glmodel1;//cheveux
                 private static final ResourceLocation textureLocation1 = new ResourceLocation(
                "minesagasmod:obj/hayner1.png");
                 
                 private static TessellatorModel glmodel2;//corps
                 public static final ResourceLocation textureLocation2 = new ResourceLocation(
                "minesagasmod", "obj/hayner1.png");//"minesagasmod:obj/hayner2.png");
                 //public static final ResourceLocation textureLocation = new ResourceLocation("cwm", "textures/blocks/legendary_stone_ground.png");
                  
                  public TileEntityHaynerSpecialRenderer()
                  {
                    this.glmodel0 = new TessellatorModel("/assets/minesagasmod/obj/hayner0.obj");
                    this.glmodel0.regenerateNormals();
                    
                    this.glmodel1 = new TessellatorModel("/assets/minesagasmod/obj/hayner1.obj");
                    this.glmodel1.regenerateNormals();
                    
                    this.glmodel2 = new TessellatorModel("/assets/minesagasmod/obj/hayner2.obj");
                    this.glmodel2.regenerateNormals();
                  }
                  
                  
                   
                  public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float scale)
                  {
                    //renderTileEntityTestAt((TileEntityBlockHayner)tileentity, x, y, z, scale);
                    GL11.glPushMatrix();
                    GL11.glTranslated(x + 0.5D, y , z + 0.5D);
                    //GL11.glRotatef((float) TileEntityBlockHayner.valeurRotation, 0, -1, 0);
                    this.bindTexture(textureLocation0);
                    GL11.glScaled(0.011D, 0.0071D, 0.01D);
                    this.glmodel0.render();   
                    GL11.glPopMatrix();
                    //GL11.glShadeModel(7425);
                    
                    GL11.glPushMatrix();
                    GL11.glTranslated(x + 0.5D, y , z + 0.5D);
                    this.bindTexture(textureLocation1);
                    //GL11.glRotatef((float) TileEntityBlockHayner.valeurRotation, 0, -1, 0);
                    GL11.glScaled(0.011D, 0.0071D, 0.01D);
                    this.glmodel1.render();   
                    GL11.glPopMatrix();
                   // GL11.glShadeModel(7425);
                    
                    GL11.glPushMatrix();
                    GL11.glTranslated(x + 0.5D, y , z + 0.5D);
                    this.bindTexture(textureLocation2);
                    //GL11.glRotatef((float) TileEntityBlockHayner.valeurRotation, 0, -1, 0);
                    GL11.glScaled(0.011D, 0.0071D, 0.01D);
                    this.glmodel2.render();  
                    GL11.glPopMatrix();
                    //GL11.glShadeModel(7425);
                    
                  }
                  
                
                  public void renderInventory(double x, double y, double z) 
                  {
                
                  }
                }
                

                La texture se trouve bien dans assets/minesagasmod/obj/

                Dans ce cas là, c’est le .mtl fourni avec le .obj qui gère la texture, rien à voir avec les ResourceLocation, et la texture est bind toute seule.

                Ca je le sais très bien mais comme je l’ai dis sur ton post GLUtils je souhaite passer par du code et non par des fichiers .mtl  comme l’a fait Gugu42 pour son mod Ratchet And Clank. J’ai regardé son github sur sa TESR de son block vendor  (https://github.com/Gugu42/RatchetAndClankMod/tree/master/java) et il faisait comme ça.

                Alors là je suis en train de modifier 2, 3 petites choses du genre passer plutôt par un IModelCustom plutôt que par un TessellatorModel comme l’a fait lui. Peut être que l’erreur est due à ça?

                1 réponse Dernière réponse Répondre Citer 0
                • DeletedD Hors-ligne
                  Deleted
                  dernière édition par

                  Bon bah j’ai découvert mon erreur tout seul : c’était le fait que je passe par un TesselatorModel et non par un IModelCustomn qui causait ceci. Jer ne sais pas pourquoi je n’y ai pas pensé plutôt. En tout cas merci à vos réponses, tout de même.

                  1 réponse Dernière réponse Répondre Citer 0
                  • Bowser338B Hors-ligne
                    Bowser338
                    dernière édition par

                    je suis un peu en retard par rapport a toutes ces réponses, je n’ai pas eu le temps de continuer pour le cable mais sinon je n’ai toujours pas trouvé de solutions a cette texture qui ne s’affiche pas 
                    je viens de penser que j’ai tout mis sur Github :
                    https://github.com/Bowser338/Robotic
                    sa vous aidera peut être a trouver la source du problème
                    je vais quand meme continuer et je vous tient au courant

                    Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                    1 réponse Dernière réponse Répondre Citer 0
                    • Bowser338B Hors-ligne
                      Bowser338
                      dernière édition par

                      je suis un peu en retard par rapport a toutes ces réponses, je n’ai pas eu le temps de continuer pour le cable mais sinon je n’ai toujours pas trouvé de solutions a cette texture qui ne s’affiche pas

                      Je viens de penser a une autre maniere de creer mon cable c’est possible de faire sa avec des models techne ?

                      Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                      1 réponse Dernière réponse Répondre Citer 0
                      • pulganP Hors-ligne
                        pulgan
                        dernière édition par

                        si c’est un block en forme de cable il va falloir passer par un rendu tesr. sauf que tu n’a pas a faire la partie avec les rotatation

                        1 réponse Dernière réponse Répondre Citer 0
                        • Bowser338B Hors-ligne
                          Bowser338
                          dernière édition par

                          Oui
                          j’ai eu une idée 
                          j’ai creer mon cable dans techne il est constitué de 7 parties :

                          le coeur ( un cube au centre ) qui s’affiche tout le temps
                          segment de droite qui s’affiche quand il y a un autre cable a droite
                          segment de gauche qui s’affiche quand il y a un autre cable a gauche
                          segment de devant qui s’affiche quand il y a un autre cable devant
                          segment de derrière qui s’affiche quand il y a un autre cable derrière
                          segment de haut qui s’affiche quand il y a un autre cable en haut
                          segment de bas qui s’affiche quand il y a un autre cable a gauche

                          sa pourrait marcher ?

                          Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                          1 réponse Dernière réponse Répondre Citer 0
                          • pulganP Hors-ligne
                            pulgan
                            dernière édition par

                            vu comme sa j’ai du mal a comprendre c’est si un cable est a coté il ya un morceau qui apparait?

                            si besoin utilise l’open source de buildcraft:
                            open source buildcraft
                            ou la classe redstone
                            mais je pense que pour faire un bloc qui change de forme c’est different

                            1 réponse Dernière réponse Répondre Citer 0
                            • Bowser338B Hors-ligne
                              Bowser338
                              dernière édition par

                              En gros la j’ai un seul bloc techne avec 7 parties le coeur et les connexions

                              et si il y a un bloc a coter sa affiche la branche correspondante pour faire la connexion

                              ( je comprends rien aux sources de Buildcraft 😕 deja essayer pleins de fois )

                              Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

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

                                @‘Bowser338’:

                                Oui
                                j’ai eu une idée 
                                j’ai creer mon cable dans techne il est constitué de 7 parties :

                                le coeur ( un cube au centre ) qui s’affiche tout le temps
                                segment de droite qui s’affiche quand il y a un autre cable a droite
                                segment de gauche qui s’affiche quand il y a un autre cable a gauche
                                segment de devant qui s’affiche quand il y a un autre cable devant
                                segment de derrière qui s’affiche quand il y a un autre cable derrière
                                segment de haut qui s’affiche quand il y a un autre cable en haut
                                segment de bas qui s’affiche quand il y a un autre cable a gauche

                                sa pourrait marcher ?

                                Je pense que ça pourrait marcher. Mais tu va devoir gérer plein de cas différents, fais attention.

                                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
                                • Bowser338B Hors-ligne
                                  Bowser338
                                  dernière édition par

                                  Bah ce que j’ai trouver je n’arrive pas avoir de texture donc je cherche un autre moyen

                                  Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • Bowser338B Hors-ligne
                                    Bowser338
                                    dernière édition par

                                    Je n’arrive pas a avoir de textures donc je cherche un autre moyen

                                    Quelqu’un saurait comment faire pour cacher un shape ?

                                    Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

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

                                      Tu l’isole de la fonction .render

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • Bowser338B Hors-ligne
                                        Bowser338
                                        dernière édition par

                                        Ah oui merci !
                                        désoler si j’ignore tout mais de quelle façon faire que j’affiche le shape X si un bloc est détecte a X endroit ?
                                        je dois mettre un if je pense mais je sais pas trop comment sa marche

                                        Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • DeletedD Hors-ligne
                                          Deleted
                                          dernière édition par

                                          Tu crees une condition pour chaque cas de figure possible ( si tel block de cable est derrière ou a la gauche….) et pour ce faire dans chacune conditions tu dois donc recuperer le block avec ses coordonnées tu as pour ce faire ce code if(world.getBlock(x + 1,y,z) ==[size=large this)]

                                          Et pour le code a effectuer dans chacune condition c est ce que t as dit robin en haut

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • Bowser338B Hors-ligne
                                            Bowser338
                                            dernière édition par

                                            pour l’instant j’ai sa :

                                            ​  public void render(float f, World world, int x, int y, int z)
                                            
                                              {
                                            
                                                if(world.getBlock(x + 1,y,z) == Robotic.pipetest) {
                                                    Shape1.render(f);
                                                    return;
                                                    }
                                                else {
                                                    Shape4.render(f);
                                                    return;
                                                }
                                                //Shape1.render(f);
                                                //Shape2.render(f);
                                                //Shape3.render(f);
                                                //Shape4.render(f);
                                                //Shape5.render(f);
                                                //Shape6.render(f);
                                                //Shape7.render(f);
                                              }
                                            

                                            seul problème dans TileEntityPipeTestSpecialRender sa me donne une erreur

                                            ​    public void renderTileEntityBlockPipeTestAt(TileEntityBlockPipeTest te, double x, double y, double z, float tick)
                                            
                                                {
                                                    GL11.glPushMatrix();
                                                    GL11.glTranslated(x + 0.5F, y + 1.5F, z + 0.5F);
                                                    this.bindTexture(textureLocation);
                                                    GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
                                                    this.model.*render*(0.0625F);
                                                    GL11.glPopMatrix();
                                                }
                                            

                                            a render ( en rouge ) et sa me dit :

                                            quelqu’un sait pourquoi ? qu’est ce que j’ai mal fait

                                            Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB