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

    Résolu Comment changer la direction d'un bloc avec rendu Techne lorsqu'on le pose

    Anciennes versions
    1.6.x
    5
    13
    2517
    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.
    • NicoKing60
      NicoKing60 dernière édition par

      Bonjour/Bonsoir

      J’ai un nouveau problème : malgré mes recherche intensive sur le site (et ailleurs) je n’arrive pas à trouver un moyens de faire changer la direction de mon nouveau bloc, la spécificité de ce bloc est que ce n’est pas un bloc normal :

      Comme vous pouvez le remarquer c’est un bloc avec un rendu complexe fait grâce à Techne, là vous le voyez de face, mais il est toujours orienté vers le sud, mais je ne trouve pas la solution pour que quand le joueur pose le bloc le bloc est face au joueur, mais pas moyen de trouver même en cherchant dans la class des coffres.

      Alors si vous pouviez m’aider ça serait gentil 😄

      (Au passage mon bloc fait des effets de particule violette et noir comme si il avait pas de texture quand je le casse, il y a un moyen de modifier ça ?)

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

        @‘NicoKing60’:

        malgré mes recherche intensive sur le site (et ailleurs)

        http://www.minecraftforgefrance.fr/showthread.php?tid=127
        “Bonus / Pour aller plus loin”
        “Tourner votre modèle en fonction de la direction :”

        1 réponse Dernière réponse Répondre Citer 0
        • isador
          isador Moddeurs confirmés Modérateurs dernière édition par

          Envoi tes code

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

            regarde dans le tuto de kevin_68 sur le model techne, il donne la solution

            public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack)
            {
            int direction = MathHelper.floor_double((double)(living.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3;
            TileEntity te = world.getBlockTileEntity(x, y, z);
            if(te != null && te instanceof TileEntitySculpture)
            {
            ((TileEntitySculpture)te).setDirection((byte)direction);
            world.markBlockForUpdate(x, y, z);
            }
            }
            

            puis

            if(te != null)
            {
            GL11.glRotatef(90F * te.getDirection(), 0.0F, 1.0F, 0.0F);
            }
            
            1 réponse Dernière réponse Répondre Citer 0
            • Gugu
              Gugu dernière édition par

              @‘NicoKing60’:

              malgré mes recherche intensive sur le site (et ailleurs)


              http://www.minecraftforgefrance.fr/showthread.php?tid=115

              "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
              ― Jordan B. Peterson

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

                J’ai beau chercher et modifier vos truc "une 2ème fois " parce que oui je les déjà vu et ça n’avais pas marché et là bah ça ne marche toujours pas donc conclusion soit ça ne marche pas en 1.7 ou alors je sais pas, ça m’étonnerais encore que ça ne marche pas en 1.7 puisque tout le monde me dis que c’est comme ça qu’on fait.

                J’ai tout enlever et je vais retenter encore une fois et si ça marche pas tant pis c’est pas bien grave

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

                  Envoie ton code.

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

                    En faite quand je suit le tuto de kevin_68 j’arrive à un moment où j’ai une erreur :

                    
                    private final ModelGemWorker model = new ModelGemWorker();
                    public static final ResourceLocation textureLocation = new ResourceLocation("battleforsurvive", "textures/blocks/model/gem_worker.png");
                    public GemWorkerTileEntitySpecialRender()
                    {
                    this.setTileEntityRenderer(TileEntityRenderer.instance);
                    }
                    
                    

                    à this.setTileEntityRenderer(TileEntityRenderer.instance); le TileEntityRenderer.instance montre une erreur et il me propose de le corriger contre d’autre modèle de tile entity, pourtant de le tuto il dit pas qu’il y a une erreur et que c’est normal è_é

                    EDIT: J’ai oublié ça aussi :

                    
                    public void renderGemWorkerTileEntityAt(GemWorkerTileEntity 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);
                    if(te != null)
                    {
                    GL11.glRotatef(90F * te.getDirection(), 0.0F, 1.0F, 0.0F);
                    }
                    this.model.renderModel(0.0625F);
                    GL11.glPopMatrix();
                    }
                    
                    

                    à getDirection() j’ai aussi une erreur et il me propose de mettre une methode dans la class de mon tile entity et ça donne ça

                    
                    public float getDirection()
                    {
                    return 0;
                    }
                    
                    

                    Il n’y a plus d’erreur dedans mais je sais pas si il fait que je laisse comme ça ou pas 😛

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

                      au niveau du render il n’y a plus rien à faire normalement.
                      Il faut juste adapter la direction (qui est un entier entre 0 et 5 ou 0 et 3) afin que le tile entity l’enregistre et la donne quand il faut.

                      Tu trouvera le code approprié dans le tutoriel de robin sur les blocs directionnels ou sur son github ici

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

                        ça y est je peut l’orienter !!!

                        Mais il n’a plus de texture et quand je le pose il me montre l’arrière plutôt que l’avant XD

                        EDIT : J’ai rien dit pour la texture, j’ai fait une faute dans le ResourceLocation (j’ai écrit RessourceLocation avec 2 s)

                        EDIT 2 : Et il ne conserve pas leur direction 😢

                        EDIT 3 : C’est bon j’ai réussi à bien l’orienté quand je le pose, mais quand je quitte le monde ils ne conserve toujours pas leur orientation è_é

                        EDIT 4 : ok j’ai résolu le problème de la conservation de l’orientation de mon bloc lorsqu’on quitte minecraft, mais il reste encore le problème des particules qui ne sont pas de la même couleur que mon bloc lorsque je le casse…

                        1 réponse Dernière réponse Répondre Citer 0
                        • isador
                          isador Moddeurs confirmés Modérateurs dernière édition par

                          tu met:

                          
                          public Icon getIcon(int side, int metadata)
                          {
                          return Block.stone.getIcon(0, 0);
                          }
                          
                          

                          cela permet de mettre les particule de stone quand tu le casse/sprint dessus
                          il suffit de remplacer par ton bloc

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

                            Oui j’y ai pensé j’était en train d’essayer et j’ai vu ton message ^^

                            Sauf que dans ton code il y a une erreur : Block devient Blocks et Icon devient IIcon

                            
                            public IIcon getIcon(int side, int metadata)
                            {
                            return Blocks.iron_block.getIcon(0, 0);
                            }
                            
                            

                            Avec ça mon bloc fait des particules de bloc de fer, après je dis ça mais ton code est peut-être celui qui marche en 1.6 mais moi je code en 1.7 et avec ton code il y a des erreurs 😛

                            1 réponse Dernière réponse Répondre Citer 0
                            • isador
                              isador Moddeurs confirmés Modérateurs dernière édition par

                              oui c’est un code 1.6 ^^

                              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