MFF

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

    [1.12.2] Faire une rotation de la hitbox

    Planifier Épinglé Verrouillé Déplacé Résolu 1.12.x
    19 Messages 4 Publieurs 2.0k Vues 2 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.
    • LeBossMax2L Hors-ligne
      LeBossMax2
      dernière édition par

      Il n’y a pas de fonction qui fait directement la rotation d’un AABB, donc ce que tu peux faire c’est créer 4 AABB, une par direction et dans getBoundingBox retourner l’AABB qui correspond à la rotation du block.

      1 réponse Dernière réponse Répondre Citer 1
      • TheXrayFRT Hors-ligne
        TheXrayFR
        dernière édition par

        tu peux me fair un exemple ou pas ?

        LeBossMax2L 1 réponse Dernière réponse Répondre Citer 0
        • LeBossMax2L Hors-ligne
          LeBossMax2 @TheXrayFR
          dernière édition par

          Sur quoi tu bloque ?

          1 réponse Dernière réponse Répondre Citer 1
          • TheXrayFRT Hors-ligne
            TheXrayFR
            dernière édition par

            Les 4 AABB je sais pas comment faire

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

              Pour les AABB, il faut juste mettre les bonnes valeurs pour que ça corresponde à ce que tu veux. Voici un exemple, c’est pour qu block plat accroché au mur (Un peu comme un item frame ou une peinture, mais c’est un bloc) :

              protected static final AxisAlignedBB[] MY_AABB_ARRAY = {new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.1875D), //South
              							new AxisAlignedBB(0.8125D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D), //West
              							new AxisAlignedBB(0.0D, 0.0D, 0.8125D, 1.0D, 1.0D, 1.0D), //North
              							new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.1875D, 1.0D, 1.0D)};//East
              	
              

              Et dans ton getBoundingBox, tu peux récupérer l’AABB dans le tableau à partir de l’indice horizontal du facing.

              1 réponse Dernière réponse Répondre Citer 1
              • TheXrayFRT Hors-ligne
                TheXrayFR
                dernière édition par

                @lebossmax2 a dit dans [1.12.2] Faire une rotation de la hitbox :

                protected static final AxisAlignedBB[] MY_AABB_ARRAY = {new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.1875D), //South
                new AxisAlignedBB(0.8125D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D), //West
                new AxisAlignedBB(0.0D, 0.0D, 0.8125D, 1.0D, 1.0D, 1.0D), //North
                new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.1875D, 1.0D, 1.0D)};

                protected static final AxisAlignedBB[] SIGNALBARE_AABB = {new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.1875D), //South
                                                                            new AxisAlignedBB(0.8125D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D), //West
                                                                            new AxisAlignedBB(0.0D, 0.0D, 0.8125D, 1.0D, 1.0D, 1.0D), //North
                                                                            new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.1875D, 1.0D, 1.0D)};
                

                la je changerais les valeur plus tard.

                public AxisAlignedBB[] getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
                	{
                		return SIGNALBARE_AABB;
                	}
                

                J’ais mie comme tu a dit mes la je planche ay niveaux du AxisAlignedBB[] qui est souligner en rouge

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

                  Alors non, getBoundingBox doit toujours retourner un AxisAlignedBB, pas un AxisAlignedBB[]. (D’ailleurs, tu devrais utiliser l’annotation @Override pour être sûr de ne pas te tromper dans la déclaration de la fonction). Et il ne faut pas retourner le tableau en entier, mais seulement l’élément qui t’intéresse en fonction de la rotation. (Tu peux obtenir la rotation du block en faisant state.getValue(FACING))

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

                    @lebossmax2 a dit dans [1.12.2] Faire une rotation de la hitbox :

                    state.getValue(FACING)

                    @Override
                    	public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
                    	{
                    		return SIGNALBARE_AABB;
                    	}
                    

                    le SIGNALBARE_AABB est en rouge

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

                      C’est pour ça que j’ai dit qu’il faut pas retourner le tableau en entier

                      1 réponse Dernière réponse Répondre Citer 1
                      • TheXrayFRT Hors-ligne
                        TheXrayFR
                        dernière édition par

                        comment sa ?

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

                          tu retourne le bon item dans le tableau
                          exemple : un tableau ou array en englais c’est une liste d’objets que tu peut recupérer grace a leur index
                          ARRAY[0] = le premier objet dans ton tableau

                          dans ton cas le tableau contient 4 items
                          donc tu a les index de 0 a 3 (soit 4 valeurs)
                          note : en informatique on commence toujours de 0

                          donc en fonction de la rotation tu recup le bon objet avec le bon index dans le tableau

                          0 = south
                          1 = west
                          2 = north
                          3 = east

                          voila les index pour chaque boudingbox de ton tableau

                          tu a plus qu’a recup le bon bon AxisAlignedBB en fonction de l’orientation de ton block

                          1 réponse Dernière réponse Répondre Citer 1
                          • TheXrayFRT Hors-ligne
                            TheXrayFR
                            dernière édition par

                            Pourrais tu me donner mes Code d’exemple ? stp

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

                              plus personne repond a mes publication ?

                              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 fonction qu’il te faut est déjà utilisé dans ta classe.
                                C’est la fonction state.getValue(FACING)).getHorizontalIndex()

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

                                  @robin4002 oui mes comment je doit formuler le code mois je ses pas du tous coder

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

                                    tous le monde me dit d’utiliser le state mes je ses pas comment lorganiser

                                    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

                                              @Override
                                      	public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
                                      	{
                                      		return SIGNALBARE_AABB[state.getValue(FACING)).getHorizontalIndex()];
                                      	}
                                      
                                      1 réponse Dernière réponse Répondre Citer 1
                                      • TheXrayFRT Hors-ligne
                                        TheXrayFR
                                        dernière édition par

                                        @robin4002 a dit dans [1.12.2] Faire une rotation de la hitbox :

                                            @Override
                                        

                                        public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
                                        {
                                        return SIGNALBARE_AABB[state.getValue(FACING)).getHorizontalIndex()];
                                        }

                                        merci !! beaucoup

                                        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