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 1.9k Vues 4 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.
    • W Hors-ligne
      whartokx @SpyMan
      dernière édition par Superloup10

      @SpyMan

      package net.mod.topazmod.Spikes;
      
      public class TileEntityCustomRenderer extends TileEntitySpecialRenderer {
              private final Modelspike model;
      
              public TileEntityCustomRenderer() {
                  this.model = new Modelspike();
              }
      
              @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();
              }
          }
      

      (je sais pas pourquoi le public class n’est pas dans la “fenetre” de code)
      EDIT de @Superloup10 : J’ai édité ton message comme ça, tu sauras mettre le markdown de code.

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

        du coup?

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

          @whartokx
          il faut que tu stock dans le tile la rotation de la même façon qu’on stock une rotation de blockstate dans le state puis que tu le get dans rotate

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

            @Wind_Blade oui mais le truc que je sais pas c’est ou le mettre. Genre dire “si on le pose contre le block de droite” etc…

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

              https://www.minecraftforgefrance.fr/topic/1173/rendre-son-bloc-orientable/2

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

                @SpyMan avec ca je n’arrive que a faire droite gauche avant arriere…
                7894eec3-93be-4c79-827d-b35a72ea0911-image.png

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

                  au pire tenez mon discord https://discord.gg/r6N9vQ par contre ca expire dans 3h

                  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

                    Regardes la fonction onBlockPlacedBy du piste, elle contient ce qu’il faut pour avoir les 6 directions.

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

                      @robin4002 Ce n’est pas seulement pour les blocks basiques ca? car moi je suis avec un block tesr. Je vais essayer. Merci

                      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

                        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
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB