MFF

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

    La hauteur du puit d'un village

    Planifier Épinglé Verrouillé Déplacé Résolu 1.11.x
    1.11.x
    12 Messages 4 Publieurs 2.4k 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.
    • DylemD Hors-ligne
      Dylem
      dernière édition par

      Bonjour,

      J’aimerai savoir s’il y a un moyen de récupérer la hauteur du puit d’un village dans la fonction appelée par mon handler (donc sans le paramètre world). 
      En effet, je peux récupérer cette hauteur dans addCompontentParts (avec World.getHeight), mais ça veut dire que la boundingBox entrée initialement est fausse et j’ai l’impression que ça pose problème…

      La fonction en question :

      
      public static WellCellar createPiece(StructureVillagePieces.Start start, int type, Random rand) {
          int x = start.getBoundingBox().minX;
          int y = start.getBoundingBox().minZ;
          int z = start.getBoundingBox().minZ;
      
          EnumFacing facing = EnumFacing.EAST;
      
          StructureBoundingBox sbb = StructureBoundingBox.getComponentToAddBoundingBox(x, y, z , 0, 0, 0, 4, 4, 4, facing);
          return new WellCellar(start, type, rand, sbb, facing);
          }
      
      

      X et Z sont justes mais Y retourne systématiquement 64…

      Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

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

        La hauteur d’un puit que tu sélectionne d’une quelconque manière ou la hauteur du puit le plus proche du joueur ?

        **Je suis un membre apprécié et joueur, j'ai déjà obtenu 1[ point de réputation./…

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

          @‘aypristyle’:

          La hauteur d’un puit que tu sélectionne d’une quelconque manière ou la hauteur du puit le plus proche du joueur ?

          En fait, ma fonction est éxécutée à chaque création d’un nouveau village, je détecte où est le puit (avec le point start qui est sur un bloc du puit), et j’aimerai ensuite l’embellir en quelque sorte. Ca marche bien mais la valeur Y du start (ou directement du puit en prenant List<structurecomponent>[0]) est toujours à 64 et ne dépend pas de la hauteur réelle du puit</structurecomponent>

          Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

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

            Tu as essaye d’ajouter une fonction qui détecte combien il y a de blocs d’air en dessous de ton point start et te retourne cette valeur ?

            **Je suis un membre apprécié et joueur, j'ai déjà obtenu 1[ point de réputation./…

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

              @‘aypristyle’:

              Tu as essaye d’ajouter une fonction qui détecte combien il y a de blocs d’air en dessous de ton point start et te retourne cette valeur ?

              Je vois pas trop comment faire ça sans avoir accès à World, dans ce cas ça revient à faire :
              int y = worldIn.getHeight(sbbIn.minX, sbbIn.minZ) ;

              Ce que je recherche avant tout c’est comprendre comment minecraft spawn le puit à la bonne hauteur en ayant comme Y 64 (alors que le Y réel est différent), que je puisse faire la même chose !

              Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

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

                Ceci est un extrait des sources minecraft sur les puits ça pourrait t’intéresser

                  public static class Well extends StructureVillagePieces.Village
                        {
                            public Well()
                            {
                            }
                
                            public Well(StructureVillagePieces.Start start, int type, Random rand, int x, int z)
                            {
                                super(start, type);
                                this.setCoordBaseMode(EnumFacing.Plane.HORIZONTAL.random(rand));
                
                                if (this.getCoordBaseMode().getAxis() == EnumFacing.Axis.Z)
                                {
                                    this.boundingBox = new StructureBoundingBox(x, 64, z, x + 6 - 1, 78, z + 6 - 1);
                                }
                                else
                                {
                                    this.boundingBox = new StructureBoundingBox(x, 64, z, x + 6 - 1, 78, z + 6 - 1);
                                }
                            }
                

                **Je suis un membre apprécié et joueur, j'ai déjà obtenu 1[ point de réputation./…

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

                  @‘aypristyle’:

                  Ceci est un extrait des sources minecraft sur les puits ça pourrait t’intéresser

                    public static class Well extends StructureVillagePieces.Village
                          {
                              public Well()
                              {
                              }
                  
                              public Well(StructureVillagePieces.Start start, int type, Random rand, int x, int z)
                              {
                                  super(start, type);
                                  this.setCoordBaseMode(EnumFacing.Plane.HORIZONTAL.random(rand));
                  
                                  if (this.getCoordBaseMode().getAxis() == EnumFacing.Axis.Z)
                                  {
                                      this.boundingBox = new StructureBoundingBox(x, 64, z, x + 6 - 1, 78, z + 6 - 1);
                                  }
                                  else
                                  {
                                      this.boundingBox = new StructureBoundingBox(x, 64, z, x + 6 - 1, 78, z + 6 - 1);
                                  }
                              }
                  

                  Oui c’est ce que j’utilise actuellement, justemment je comprends pas comment en déclarant une boundingbox avec y = 64 à 78, le puit spawn au sol, que le y soit supérieur ou inférieur

                  Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

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

                    Alors c’est ce code ```java
                                   if (this.field_143015_k < 0)
                                   {
                                       this.field_143015_k = this.getAverageGroundLevel(p_74875_1_, p_74875_3_);

                    if (this.field_143015_k < 0)
                                       {
                                           return true;
                                       }

                    this.boundingBox.offset(0, this.field_143015_k - this.boundingBox.maxY + 3, 0);
                                   }

                    Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                    AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                    Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                    Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                      @‘AymericRed’:

                      Alors c’est ce code ```java
                                     if (this.field_143015_k < 0)
                                     {
                                         this.field_143015_k = this.getAverageGroundLevel(p_74875_1_, p_74875_3_);

                      if (this.field_143015_k < 0)
                                         {
                                             return true;
                                         }

                      this.boundingBox.offset(0, this.field_143015_k - this.boundingBox.maxY + 3, 0);
                                     }

                      niquel merci, j’ai du passer à côté 🙂
                      C’est ce que je cherchais

                      Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

                      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

                        Cette discussion concernait quelle version de minecraft ?

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

                          @‘robin4002’:

                          Cette discussion concernait quelle version de minecraft ?

                          Mon minecraft tournait en 1.11 lorsque je l’ai posée, mais je pense qu’elle concerne toutes les versions.

                          Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

                          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

                            Le code pouvant être différent dans les anciennes versions je préfère déplacer ici.

                            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