MFF

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

    [1.7.10] Rotation d'un block TESR

    Planifier Épinglé Verrouillé Déplacé 1.7.x
    1.7.10
    35 Messages 5 Publieurs 2.1k Vues 4 Abonné
    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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      La méthode onBlockPlacedBy va juste déterminer l’orientation.
      Ensuite c’est dans le code du rendu qu’il faut effectuer la rotation en fonction de l’orientation. Seule cette partie est différente en fonction du type de rendu (“basique” ou TESR)

      W 1 réponse Dernière réponse Répondre Citer 0
      • W Hors-ligne
        whartokx @robin4002
        dernière édition par

        @robin4002 et dans le rendu je met quoi?

        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

          Presque la même chose que tu as actuellement, il faut juste ajouter le cas où la direction vaut 4 ou 5 et dans ce cas faire une rotation sur l’axe x de 180°.

          W 1 réponse Dernière réponse Répondre Citer 0
          • W Hors-ligne
            whartokx @robin4002
            dernière édition par

            @robin4002 Et j’en revient a ma queltion du debut comment on dit : le cas où la direction vaut 4 ou 5.

            Genre if metadata == … ?

            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

              Oui.
              Ton code actuel ressemble à quoi ?

              W 1 réponse Dernière réponse Répondre Citer 0
              • W Hors-ligne
                whartokx @robin4002
                dernière édition par

                @robin4002 niveau rendu pareil qu’au debut. mais le reste j’ai fais ceque vous m’avez envoyé

                W 1 réponse Dernière réponse Répondre Citer 0
                • W Hors-ligne
                  whartokx @whartokx
                  dernière édition par

                  @whartokx c’est if(world.getBlockMetadata(x, y, z) == 0) qu’on doit mettre pour check le metadata car si oui on ne peut pas le mettre vu qu’on est dans du rendu il faut que la fonction ait world

                  78134073-3561-425b-91fd-8e71758c5309-image.png

                  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

                    Fais voir ton code actuel complet (toute la fonction renderTileEntityAt, avec son contenu).

                    W 2 réponses Dernière réponse Répondre Citer 0
                    • W Hors-ligne
                      whartokx @robin4002
                      dernière édition par

                      @robin4002

                          @Override
                          public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale) {
                      
                              GL11.glPushMatrix();
                              GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F);
                              ResourceLocation textures = (new ResourceLocation(Reference.MOD_ID + ":SpikeTopaze.png"));
                              Minecraft.getMinecraft().renderEngine.bindTexture(textures);
                              GL11.glPushMatrix();
                              GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
                              GL11.glPushMatrix();
                              GL11.glRotatef(te.getBlockMetadata() * 90, 0.0F, 1.0F, 0.0F);
                              this.model.render((Entity) null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
                              GL11.glPopMatrix();
                              GL11.glPopMatrix();
                              GL11.glPopMatrix();
                      
                          }
                      
                      1 réponse Dernière réponse Répondre Citer 0
                      • W Hors-ligne
                        whartokx @robin4002
                        dernière édition par

                        @robin4002 je n’ai pas avancé depuis. J’ai juste changé des trucs dans la classe du block

                        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 robin4002

                          Essayes comme ça :

                                  @Override
                                  public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale) {
                          
                                      GL11.glPushMatrix();
                                      GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F);
                                      ResourceLocation textures = (new ResourceLocation(Reference.MOD_ID + ":SpikeTopaze.png"));
                                      Minecraft.getMinecraft().renderEngine.bindTexture(textures);
                                      GL11.glPushMatrix();
                                      GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
                                      GL11.glPushMatrix();
                                      if (te.getBlockMetadata() > 0 && te.getBlockMetadata() < 4) {
                                           GL11.glRotatef(te.getBlockMetadata() * 90, 0.0F, 1.0F, 0.0F);
                                      }
                                      else if(te.getBlockMetadata() == 4) {
                                           GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F);
                                      }
                                      else {
                                           GL11.glRotatef(90F, -1.0F, 0.0F, 0.0F);
                                      }
                                      this.model.render((Entity) null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
                                      GL11.glPopMatrix();
                                      GL11.glPopMatrix();
                                      GL11.glPopMatrix();
                                  }
                          
                          W 1 réponse Dernière réponse Répondre Citer 0
                          • W Hors-ligne
                            whartokx @robin4002
                            dernière édition par

                            @robin4002 cool merci. est il possible de mettre du glTranslatef? car je l’ai fait et le model me suivait mais je restait pas sur le block.

                            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

                              Oui tu peux en mettre.

                              W 1 réponse Dernière réponse Répondre Citer 0
                              • W Hors-ligne
                                whartokx @robin4002
                                dernière édition par

                                @robin4002 regarde ceque ca fait XJrHaEyakv.gif

                                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 as mis quoi comme translate et tu l’as mit où ?

                                  W 3 réponses Dernière réponse Répondre Citer 0
                                  • W Hors-ligne
                                    whartokx @robin4002
                                    dernière édition par

                                    @robin4002
                                    else if(te.getBlockMetadata() == 4) {
                                    GL11.glTranslatef((float) x + 0.0F, (float) y + 2.0F, (float) z + 0.0F);
                                    GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F);
                                    }

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • W Hors-ligne
                                      whartokx @robin4002
                                      dernière édition par

                                      @robin4002 j’ai rien dit ! avec : GL11.glTranslatef(0.0F, 2.0F, 0.0F); ca marche ! merci a tous 😉

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • W Hors-ligne
                                        whartokx @robin4002
                                        dernière édition par

                                        @robin4002 un tout dernier truc. est il possible de mettre une texture 2d sur l’item qu’on a en main?

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

                                        MINECRAFT FORGE FRANCE © 2024

                                        Powered by NodeBB