MFF

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

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

    Planifier Épinglé Verrouillé Déplacé Résolu Anciennes versions
    1.6.x
    13 Messages 5 Publieurs 2.9k 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.
    • Phenix246P Hors-ligne
      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
      • GuguG Hors-ligne
        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
        • NicoKing60N Hors-ligne
          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
          • robin4002R Hors-ligne
            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
            • NicoKing60N Hors-ligne
              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
              • Phenix246P Hors-ligne
                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
                • NicoKing60N Hors-ligne
                  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
                  • isadorI Hors-ligne
                    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
                    • NicoKing60N Hors-ligne
                      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
                      • isadorI Hors-ligne
                        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
                        ContactMentions Légales

                        MINECRAFT FORGE FRANCE © 2024

                        Powered by NodeBB