• Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes
  • S'inscrire
  • Se connecter
  • S'inscrire
  • Se connecter
  • Recherche
  • Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes

Résolu Supprimer des biomes

1.8.x
1.8.9
5
27
5.0k
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.
  • E
    elx9000 dernière édition par 24 juin 2017, 16:37

    Bonjour à tous, je viens vers vous parce que je n’arrive pas a trouver comment on peut supprimer un ou plusieurs biomes vanilla. Je pensait à BiomeManager.removeSpawnBiome mais ça ne fonctionne pas et BiomeManager.removeBiome ne semble pas fonctionner non plus. Je m’y suis peut-être mal pris. Donc comment supprimer un biome ?

    Merci par avance pour votre aide.

    1 réponse Dernière réponse Répondre Citer 0
    • Dylem
      Dylem dernière édition par 24 juin 2017, 17:05

      Ta fonction doit être appelée dans “public void init”.

      Exemple :

      @EventHandler
      public void init(FMLInitializationEvent event) {
          proxy.init(event);
          Biome biome = Biomes.OCEAN;
          BiomeManager.removeSpawnBiome(biome);
      }

      J’ai testé, et dans une map superflat avec que de l’eau ça donne une map dans le vide.

      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
      • E
        elx9000 dernière édition par 26 juin 2017, 11:27

        J’ai mis ça dans public void init :

               BiomeManager.removeSpawnBiome(BiomeGenBase.birchForest);
               BiomeManager.removeSpawnBiome(BiomeGenBase.birchForestHills);
               BiomeManager.removeSpawnBiome(BiomeGenBase.coldBeach);
               BiomeManager.removeSpawnBiome(BiomeGenBase.coldTaiga);
               BiomeManager.removeSpawnBiome(BiomeGenBase.coldTaigaHills);
               BiomeManager.removeSpawnBiome(BiomeGenBase.deepOcean);
               BiomeManager.removeSpawnBiome(BiomeGenBase.desert);
               BiomeManager.removeSpawnBiome(BiomeGenBase.desertHills);
               BiomeManager.removeSpawnBiome(BiomeGenBase.extremeHills);
               BiomeManager.removeSpawnBiome(BiomeGenBase.extremeHillsEdge);
               BiomeManager.removeSpawnBiome(BiomeGenBase.extremeHillsPlus);
               BiomeManager.removeSpawnBiome(BiomeGenBase.forest);
               BiomeManager.removeSpawnBiome(BiomeGenBase.forestHills);
               BiomeManager.removeSpawnBiome(BiomeGenBase.frozenOcean);
               BiomeManager.removeSpawnBiome(BiomeGenBase.frozenRiver);
               BiomeManager.removeSpawnBiome(BiomeGenBase.hell);
               BiomeManager.removeSpawnBiome(BiomeGenBase.iceMountains);
               BiomeManager.removeSpawnBiome(BiomeGenBase.icePlains);
               BiomeManager.removeSpawnBiome(BiomeGenBase.jungle);
               BiomeManager.removeSpawnBiome(BiomeGenBase.jungleEdge);
               BiomeManager.removeSpawnBiome(BiomeGenBase.jungleHills);
               BiomeManager.removeSpawnBiome(BiomeGenBase.megaTaiga);
               BiomeManager.removeSpawnBiome(BiomeGenBase.megaTaigaHills);
               BiomeManager.removeSpawnBiome(BiomeGenBase.mesa);
               BiomeManager.removeSpawnBiome(BiomeGenBase.mesaPlateau);
               BiomeManager.removeSpawnBiome(BiomeGenBase.mesaPlateau_F);
               BiomeManager.removeSpawnBiome(BiomeGenBase.mushroomIsland);
               BiomeManager.removeSpawnBiome(BiomeGenBase.mushroomIslandShore);
               BiomeManager.removeSpawnBiome(BiomeGenBase.plains);
               BiomeManager.removeSpawnBiome(BiomeGenBase.river);
               BiomeManager.removeSpawnBiome(BiomeGenBase.roofedForest);
               BiomeManager.removeSpawnBiome(BiomeGenBase.savanna);
               BiomeManager.removeSpawnBiome(BiomeGenBase.savannaPlateau);
               BiomeManager.removeSpawnBiome(BiomeGenBase.stoneBeach);
               BiomeManager.removeSpawnBiome(BiomeGenBase.swampland);
               BiomeManager.removeSpawnBiome(BiomeGenBase.taiga);
               BiomeManager.removeSpawnBiome(BiomeGenBase.taigaHills);

        Vu que je n’est pas la class Biomes j’ai mis BiomeGenBase. Le problèmes c’est que ça ne fonctionne toujours pas. Par exemple le biome plaine est bien généré alors qu’il ne devrait pas.

        1 réponse Dernière réponse Répondre Citer 0
        • Dylem
          Dylem dernière édition par 26 juin 2017, 12:47

          Je n’avais pas vu que tu étais en 1.8. Dans cette “vieille” version, il faut utiliser le WorldChunkManager.

          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
          • E
            elx9000 dernière édition par 26 juin 2017, 12:53

            A la place de BiomeManager ?

            1 réponse Dernière réponse Répondre Citer 0
            • Dylem
              Dylem dernière édition par 26 juin 2017, 14:53

              @‘elx9000’:

              A la place de BiomeManager ?

              Quelque chose comme ça :

              [font=-apple-system, BlinkMacSystemFont,public] static void removeSpawnBiome(BiomeGenBase biome)
                 {
                     if (WorldChunkManager.allowedBiomes.contains(biome))
                     {
                         WorldChunkManager.allowedBiomes.remove(biome);
                     }
                 }

              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
              • E
                elx9000 dernière édition par 27 juin 2017, 11:40

                J’ai fait ça :

                       removeSpawnBiome(BiomeGenBase.birchForest);
                       removeSpawnBiome(BiomeGenBase.birchForestHills);
                       removeSpawnBiome(BiomeGenBase.coldBeach);
                       removeSpawnBiome(BiomeGenBase.coldTaiga);
                       removeSpawnBiome(BiomeGenBase.coldTaigaHills);
                       removeSpawnBiome(BiomeGenBase.deepOcean);
                       removeSpawnBiome(BiomeGenBase.desert);
                       removeSpawnBiome(BiomeGenBase.desertHills);
                       removeSpawnBiome(BiomeGenBase.extremeHills);
                       removeSpawnBiome(BiomeGenBase.extremeHillsEdge);
                       removeSpawnBiome(BiomeGenBase.extremeHillsPlus);
                       removeSpawnBiome(BiomeGenBase.forest);
                       removeSpawnBiome(BiomeGenBase.forestHills);
                       removeSpawnBiome(BiomeGenBase.frozenOcean);
                       removeSpawnBiome(BiomeGenBase.frozenRiver);
                       removeSpawnBiome(BiomeGenBase.hell);
                       removeSpawnBiome(BiomeGenBase.iceMountains);
                       removeSpawnBiome(BiomeGenBase.icePlains);
                       removeSpawnBiome(BiomeGenBase.jungle);
                       removeSpawnBiome(BiomeGenBase.jungleEdge);
                       removeSpawnBiome(BiomeGenBase.jungleHills);
                       removeSpawnBiome(BiomeGenBase.megaTaiga);
                       removeSpawnBiome(BiomeGenBase.megaTaigaHills);
                       removeSpawnBiome(BiomeGenBase.mesa);
                       removeSpawnBiome(BiomeGenBase.mesaPlateau);
                       removeSpawnBiome(BiomeGenBase.mesaPlateau_F);
                       removeSpawnBiome(BiomeGenBase.mushroomIsland);
                       removeSpawnBiome(BiomeGenBase.mushroomIslandShore);
                       removeSpawnBiome(BiomeGenBase.plains);
                       removeSpawnBiome(BiomeGenBase.river);
                       removeSpawnBiome(BiomeGenBase.roofedForest);
                       removeSpawnBiome(BiomeGenBase.savanna);
                       removeSpawnBiome(BiomeGenBase.savannaPlateau);
                       removeSpawnBiome(BiomeGenBase.stoneBeach);
                       removeSpawnBiome(BiomeGenBase.swampland);
                       removeSpawnBiome(BiomeGenBase.taiga);
                       removeSpawnBiome(BiomeGenBase.taigaHills);
                   }
                   public static void removeSpawnBiome(BiomeGenBase biome)
                   {
                       if (WorldChunkManager.allowedBiomes.contains(biome))
                       {
                           WorldChunkManager.allowedBiomes.remove(biome);
                       }
                   }

                Ceci se trouve dans la classe ou j’enregistre les biomes. Elle est enregistré dans le clientProxy dans registerRenders, qui est enregistré dans la partie init de la classe principale.
                Pourtant, ça ne fonctionne toujours pas ? Comment faire ?
                Merci par avance.

                1 réponse Dernière réponse Répondre Citer 0
                • E
                  elx9000 dernière édition par 28 juin 2017, 09:37

                  Pas d’idée ?

                  1 réponse Dernière réponse Répondre Citer 0
                  • LeBossMax2
                    LeBossMax2 dernière édition par 28 juin 2017, 13:34

                    @‘elx9000’:

                    Ceci se trouve dans la classe ou j’enregistre les biomes. Elle est enregistré dans le clientProxy dans registerRenders, qui est enregistré dans la partie init de la classe principale.

                    Cela n’a rien à voir avec les renders alors ça n’a rien à faire dans la fonction registerRenders et supprimer les biomes côté client seulement ne sert à rien à part faire cracher Minecraft. Donc tu devrais plutôt le mettre dans le common proxy ou dans la class principale.(dans init, je pense que c’est bien)

                    1 réponse Dernière réponse Répondre Citer 0
                    • E
                      elx9000 dernière édition par 28 juin 2017, 15:24

                      J’ai mis le code précédent dans la classe principale, dans le init comme tu me l’as conseillé (sauf la méthode removeSpawnBiome). Mais ça ne fonctionne toujours pas, les biomes enlevé spawn toujours.

                      Merci d’avance.

                      1 réponse Dernière réponse Répondre Citer 0
                      • Dylem
                        Dylem dernière édition par 28 juin 2017, 16:39

                        Si tu veux tous les enlever, il devrait y avoir une fonction removeAll dans biomeManager. Je ne peux malheureusement pas tester, car ma version de Minecraft est différente de la tienne.

                        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
                        • Alexandre1156
                          Alexandre1156 dernière édition par 28 juin 2017, 17:35

                          Tous les biomes se trouvent dans le field biomeList,* *dans la class BiomeGenBase.
                          biomeList étant private, static et final, tu doit la modifier en utilisant la Reflection :

                          @EventHandler
                          public void preInit (FMLPreInitializationEvent event) {    
                             try {
                               Field field = BiomeGenBase.class.getDeclaredFields()[14];
                               field.setAccessible(true);
                               Field modifiersField = Field.class.getDeclaredField("modifiers");
                               modifiersField.setAccessible(true);
                               modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
                               field.set(BiomeGenBase.birchForest, new BiomeGenBase[256]);
                             } catch(Exception e){
                                e.printStackTrace();
                             }
                          }

                          Source : https://stackoverflow.com/questions/3301635/change-private-static-final-field-using-java-reflection

                          Pour avoir testé, on apparaît dans un monde remplis d’eau et dans le biome Plains, qui doit être le valeur par défaut.

                          1 réponse Dernière réponse Répondre Citer 0
                          • E
                            elx9000 dernière édition par 29 juin 2017, 12:19

                            J’ai du mal à comprendre la ligne :

                            field.set(BiomeGenBase.[color=#0000c0birchForest], [color=#7f0055new] BiomeGenBase[256]);

                            Le 256 correspond à quoi ?

                            Je voit effectivement qu’on apparaît dans un monde rempli d’eau, avec F3 il y a aussi écrit que je suis dans un biome plaine. Comment changer ceci pour afficher le biome océan ?

                            Est-ce que ceci enlève les biomes custom ?

                            Merci d’avance.

                            1 réponse Dernière réponse Répondre Citer 0
                            • Alexandre1156
                              Alexandre1156 dernière édition par 29 juin 2017, 17:40

                              @‘elx9000’:

                              J’ai du mal à comprendre la ligne :

                              field.set(BiomeGenBase.[color=#0000c0birchForest], [color=#7f0055new] BiomeGenBase[256]);

                              Le 256 correspond à quoi ?

                              La capacité du tableau. Je te conseil de (re)voir les bases du Java : https://openclassrooms.com/courses/apprenez-a-programmer-en-java/les-tableaux-3

                              @‘elx9000’:

                              Je voit effectivement qu’on apparaît dans un monde rempli d’eau, avec F3 il y a aussi écrit que je suis dans un biome plaine. Comment changer ceci pour afficher le biome océan ?

                              2 solutions, une simple, l’autre laborieuse :
                              -Rajouter le biome Océan dans le tableau;
                              -Modifier le F3 (en utilisant l’event RenderGameOverlayEvent.Text, tu vérifies que gameSettings.showDebugInfo est sur true, puis tu cherches la ligne où se trouve le biome dans la variable event.left et tu le remplaces).

                              @‘elx9000’:

                              Est-ce que ceci enlève les biomes custom ?

                              Ça dépend si les biomes sont rajoutées avant ou après field.set(BiomeGenBase.birchForest, new BiomeGenBase[256]);

                              1 réponse Dernière réponse Répondre Citer 0
                              • E
                                elx9000 dernière édition par 30 juin 2017, 11:28

                                Oui, je sais ce qu’est un tableau. Je voulait savoir pourquoi c’est 256 et pas 302 par exemple.
                                Ensuite, comment j’ajoute le biome océan au tableau (j’ai était voir sur classroom mais j’ai rien trouvé sur l’ajout de valeur). De telle sorte qu’il n’y ai que mon biome custom et le biome océan.

                                Merci d’avance.

                                1 réponse Dernière réponse Répondre Citer 0
                                • Deleted
                                  Deleted dernière édition par 30 juin 2017, 11:49

                                  La classe ArrayUtils devrait pouvoir t’aider 😉

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • E
                                    elx9000 dernière édition par 30 juin 2017, 12:14

                                    J’ai rajouté cette ligne avant le field.set(…) :

                                    ArrayUtils.add([color=#7f0055new] BiomeGenBase[256], 0, BiomeGenBase.[color=#0000c0ocean]);

                                    Mais le F3 me considère toujours dans le biome plaine.

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • Alexandre1156
                                      Alexandre1156 dernière édition par 30 juin 2017, 15:22

                                      Je ne vois pas de ce qui a de compliqué :

                                      BiomeGenBase[] biomes = new BiomeGenBase[256];
                                      biomes[0] = BiomeGenBase.ocean;
                                      biomes[1] = <ton biome="">;
                                      field.set(BiomeGenBase.birchForest, biomes);
                                      ```</ton>
                                      1 réponse Dernière réponse Répondre Citer 0
                                      • E
                                        elx9000 dernière édition par 30 juin 2017, 16:45

                                        Effectivement, c’est pas compliqué une fois qu’on a compris.
                                        Il n’y a bien que mon biome et le biome océan qui spawnent.
                                        Ensuite, comment faire pour que le player spawn dans mon biome et pas dans le biome océan ?
                                        –-----------------
                                        Rectification : on ne peut pas changer le fait qu’on spawn dans un monde rempli d’eau et n’avoir que le biome custom sur le monde ?

                                        Merci d’avance.

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • Dylem
                                          Dylem dernière édition par 30 juin 2017, 23:08

                                          BiomeProvider#findBiomePosition devrait trouver l’endroit le plus près du spawn où il y a ton biome. Tu peux le tp là-bas.

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

                                          MINECRAFT FORGE FRANCE © 2018

                                          Powered by NodeBB