MFF

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

    Problème génération biome

    Planifier Épinglé Verrouillé Déplacé Non résolu 1.7.x
    1.7.10
    91 Messages 9 Publieurs 14.0k 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.
    • AymericRedA Hors-ligne
      AymericRed
      dernière édition par

      Je parlais de le mettre avant la ligne ou il y a le “aint1[j1 + i1 * par3] = ((BiomeEntry)WeightedRandom”, mais en tout cas la liste a l’air bonne, don retire le /10 et * 10.

      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
      • S Hors-ligne
        sventus
        dernière édition par

        toujours pas ::(

        –-- Minecraft Crash Report ----
        // I'm sorry, Dave.
        
        Time: 23/06/16 17:37
        Description: Exception initializing level
        
        java.lang.NullPointerException: Exception initializing level
        at fr.craftesys.craftesys.generation.BiomeTestLayer.getInts(BiomeTestLayer.java:97)
        at net.minecraft.world.gen.layer.GenLayerZoom.getInts(GenLayerZoom.java:23)
        at net.minecraft.world.gen.layer.GenLayerZoom.getInts(GenLayerZoom.java:23)
        at net.minecraft.world.gen.layer.GenLayerBiomeEdge.getInts(GenLayerBiomeEdge.java:21)
        at net.minecraft.world.gen.layer.GenLayerHills.getInts(GenLayerHills.java:26)
        at net.minecraft.world.gen.layer.GenLayerRareBiome.getInts(GenLayerRareBiome.java:21)
        at net.minecraft.world.gen.layer.GenLayerZoom.getInts(GenLayerZoom.java:23)
        at net.minecraft.world.gen.layer.GenLayerAddIsland.getInts(GenLayerAddIsland.java:23)
        at net.minecraft.world.gen.layer.GenLayerZoom.getInts(GenLayerZoom.java:23)
        at net.minecraft.world.gen.layer.GenLayerShore.getInts(GenLayerShore.java:23)
        at net.minecraft.world.gen.layer.GenLayerZoom.getInts(GenLayerZoom.java:23)
        at net.minecraft.world.gen.layer.GenLayerZoom.getInts(GenLayerZoom.java:23)
        at net.minecraft.world.gen.layer.GenLayerSmooth.getInts(GenLayerSmooth.java:23)
        at net.minecraft.world.gen.layer.GenLayerRiverMix.getInts(GenLayerRiverMix.java:35)
        at net.minecraft.world.biome.WorldChunkManager.findBiomePosition(WorldChunkManager.java:250)
        at net.minecraft.world.WorldServer.createSpawnPosition(WorldServer.java:777)
        at net.minecraft.world.WorldServer.initialize(WorldServer.java:757)
        at net.minecraft.world.World.<init>(World.java:296)
        at net.minecraft.world.WorldServer.<init>(WorldServer.java:102)
        at net.minecraft.server.integrated.IntegratedServer.loadAllWorlds(IntegratedServer.java:63)
        at net.minecraft.server.integrated.IntegratedServer.startServer(IntegratedServer.java:96)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:445)
        at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
        
        A detailed walkthrough of the error, its code path and all known details is as follows:
        ---------------------------------------------------------------------------------------
        
        -- Head --
        Stacktrace:
        at fr.craftesys.craftesys.generation.BiomeTestLayer.getInts(BiomeTestLayer.java:97)
        at net.minecraft.world.gen.layer.GenLayerZoom.getInts(GenLayerZoom.java:23)
        at net.minecraft.world.gen.layer.GenLayerZoom.getInts(GenLayerZoom.java:23)
        at net.minecraft.world.gen.layer.GenLayerBiomeEdge.getInts(GenLayerBiomeEdge.java:21)
        at net.minecraft.world.gen.layer.GenLayerHills.getInts(GenLayerHills.java:26)
        at net.minecraft.world.gen.layer.GenLayerRareBiome.getInts(GenLayerRareBiome.java:21)
        at net.minecraft.world.gen.layer.GenLayerZoom.getInts(GenLayerZoom.java:23)
        at net.minecraft.world.gen.layer.GenLayerAddIsland.getInts(GenLayerAddIsland.java:23)
        at net.minecraft.world.gen.layer.GenLayerZoom.getInts(GenLayerZoom.java:23)
        at net.minecraft.world.gen.layer.GenLayerShore.getInts(GenLayerShore.java:23)
        at net.minecraft.world.gen.layer.GenLayerZoom.getInts(GenLayerZoom.java:23)
        at net.minecraft.world.gen.layer.GenLayerZoom.getInts(GenLayerZoom.java:23)
        at net.minecraft.world.gen.layer.GenLayerSmooth.getInts(GenLayerSmooth.java:23)
        at net.minecraft.world.gen.layer.GenLayerRiverMix.getInts(GenLayerRiverMix.java:35)
        at net.minecraft.world.biome.WorldChunkManager.findBiomePosition(WorldChunkManager.java:250)
        at net.minecraft.world.WorldServer.createSpawnPosition(WorldServer.java:777)
        at net.minecraft.world.WorldServer.initialize(WorldServer.java:757)
        
        -- Affected level --
        Details:
        Level name: New Worldgergg
        All players: 0 total; []
        Chunk stats: ServerChunkCache: 0 Drop: 0
        Level seed: 5599626093747522092
        Level generator: ID 04 - giant, ver 0\. Features enabled: true
        Level generator options: 
        Level spawn location: World: (0,0,0), Chunk: (at 0,0,0 in 0,0; contains blocks 0,0,0 to 15,255,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
        Level time: 0 game time, 0 day time
        Level dimension: 0
        Level storage version: 0x04ABD - Anvil
        Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
        Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true
        Stacktrace:
        at net.minecraft.world.World.<init>(World.java:296)
        at net.minecraft.world.WorldServer.<init>(WorldServer.java:102)
        at net.minecraft.server.integrated.IntegratedServer.loadAllWorlds(IntegratedServer.java:63)
        at net.minecraft.server.integrated.IntegratedServer.startServer(IntegratedServer.java:96)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:445)
        at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
        
        -- System Details --
        Details:
        Minecraft Version: 1.7.10
        Operating System: Windows 10 (amd64) version 10.0
        Java Version: 1.8.0_91, Oracle Corporation
        Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
        Memory: 888162432 bytes (847 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)
        JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
        AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
        IntCache: cache: 0, tcache: 0, allocated: 4, tallocated: 19
        FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1558 4 mods loaded, 4 mods active
        States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
        UCHIJAA mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
        UCHIJAA FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar) 
        UCHIJAA Forge{10.13.4.1558} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar) 
        UCHIJAA craftesys{1.0.0} [craftesys] (bin) 
        GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
        Profiler Position: N/A (disabled)
        Player Count: 0 / 8; []
        Type: Integrated Server (map_client.txt)
        Is Modded: Definitely; Client brand changed to 'fml,forge'
        

        et ma class :

        package fr.craftesys.craftesys.generation;
        
        import java.util.ArrayList;
        import java.util.List;
        
        import net.minecraft.util.WeightedRandom;
        import net.minecraft.world.WorldType;
        import net.minecraft.world.biome.BiomeGenBase;
        import net.minecraft.world.gen.layer.GenLayer;
        import net.minecraft.world.gen.layer.IntCache;
        import net.minecraftforge.common.BiomeManager;
        import net.minecraftforge.common.BiomeManager.BiomeEntry;
        
        public class BiomeTestLayer extends GenLayer
        {
            private List <biomeentry>desertBiomes = new ArrayList<biomeentry>();
            private List <biomeentry>warmBiomes = new ArrayList<biomeentry>();
            private List <biomeentry>coolBiomes = new ArrayList<biomeentry>();
            private List <biomeentry>icyBiomes = new ArrayList<biomeentry>();
        
            public BiomeTestLayer(long par1, GenLayer layer, WorldType worldType)
            {
                super(par1);
        
                this.parent = layer;
        
               this.desertBiomes.addAll(BiomeManager.desertBiomes);
                this.warmBiomes.addAll(BiomeManager.warmBiomes);
                this.coolBiomes.addAll(BiomeManager.coolBiomes);
                this.icyBiomes.addAll(BiomeManager.icyBiomes);
        
                if (worldType == WorldType.DEFAULT)
                {
                    desertBiomes.add(new BiomeEntry(BiomeGenBase.desert, 10));
                    desertBiomes.add(new BiomeEntry(BiomeGenBase.forest, 10));
                    desertBiomes.add(new BiomeEntry(BiomeGenBase.extremeHills, 10));
                    desertBiomes.add(new BiomeEntry(BiomeGenBase.swampland, 10));
                    desertBiomes.add(new BiomeEntry(BiomeGenBase.plains, 10));
                    desertBiomes.add(new BiomeEntry(BiomeGenBase.taiga, 10));
                    desertBiomes.add(new BiomeEntry(BiomeRegistry.biomeTest, 50));
                }
                else
                {
                    desertBiomes.add(new BiomeEntry(BiomeGenBase.desert, 30));
                    desertBiomes.add(new BiomeEntry(BiomeGenBase.savanna, 20));
                    desertBiomes.add(new BiomeEntry(BiomeGenBase.plains, 10));
                    desertBiomes.add(new BiomeEntry(BiomeRegistry.biomeTest, 50));
                }
            }
        
            public int[] getInts(int par1, int par2, int par3, int par4)
            {
                int[] aint = this.parent.getInts(par1, par2, par3, par4);
                int[] aint1 = IntCache.getIntCache(par3 * par4);
        
                for (int i1 = 0; i1 < par4; ++i1)
                {
                    for (int j1 = 0; j1 < par3; ++j1)
                    {
                        this.initChunkSeed((long)(j1 + par1), (long)(i1 + par2));
                        int k1 = aint[j1 + i1 * par3];
                        int l1 = (k1 & 3840) >> 8;
                        k1 &= -3841;
        
                        if (isBiomeOceanic(k1))
                        {
                            aint1[j1 + i1 * par3] = k1;
                        }
                        else if (k1 == BiomeGenBase.mushroomIsland.biomeID)
                        {
                            aint1[j1 + i1 * par3] = k1;
                        }
                        else if (k1 == 1)
                        {
                            if (l1 > 0)
                            {
                                if (this.nextInt(3) == 0)
                                {
                                    aint1[j1 + i1 * par3] = BiomeGenBase.mesaPlateau.biomeID;
                                }
                                else
                                {
                                    aint1[j1 + i1 * par3] = BiomeGenBase.mesaPlateau_F.biomeID;
                                }
                            }
                            else
                            {
                             System.out.println(desertBiomes);
                               aint1[j1 + i1 * par3] = ((BiomeEntry)WeightedRandom
                              .getItem(this
                              .desertBiomes, (int)(this
                            .nextLong(WeightedRandom
                            .getTotalWeight(this
                             .desertBiomes)))))
                              .biome
                              .biomeID;
        
                            }
                        }
                        else if (k1 == 2)
                        {
                            if (l1 > 0)
                            {
                                aint1[j1 + i1 * par3] = BiomeGenBase.jungle.biomeID;
                            }
                            else
                            {
                                aint1[j1 + i1 * par3] = ((BiomeEntry)WeightedRandom.getItem(this.warmBiomes, (int)(this.nextLong(WeightedRandom.getTotalWeight(this.warmBiomes) / 10) * 10))).biome.biomeID;
                            }
                        }
                        else if (k1 == 3)
                        {
                            if (l1 > 0)
                            {
                                aint1[j1 + i1 * par3] = BiomeGenBase.megaTaiga.biomeID;
                            }
                            else
                            {
                                aint1[j1 + i1 * par3] = ((BiomeEntry)WeightedRandom.getItem(this.coolBiomes, (int)(this.nextLong(WeightedRandom.getTotalWeight(this.coolBiomes) / 10) * 10))).biome.biomeID;
                            }
                        }
                        else if (k1 == 4)
                        {
                            aint1[j1 + i1 * par3] = ((BiomeEntry)WeightedRandom.getItem(this.icyBiomes, (int)(this.nextLong(WeightedRandom.getTotalWeight(this.icyBiomes) / 10) * 10))).biome.biomeID;
                        }
                        else
                        {
                            aint1[j1 + i1 * par3] = BiomeGenBase.mushroomIsland.biomeID;
                        }
                    }
                }
        
                return aint1;
            }
        
        }
        
        

        note à l’avenir, ne pas register deux fois le même biome dans deux class différentes 😄

        autre petite question, j’ai ajouté cela dans ma class :

        public int getBiomeGrassColor()
            {

        return 0xFF0C00;
            }

        mais l’herbe ne change pas de couleur</biomeentry></biomeentry></biomeentry></biomeentry></biomeentry></biomeentry></biomeentry></biomeentry></init></init></init></init>

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

          Fais une recherche sur le forum, plusieurs personnes ont déjà eu ce problème

          Site web contenant mes scripts : http://SCAREXgaming.github.io

          Pas de demandes de support par MP ni par skype SVP.
          Je n'accepte sur skype que l…

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

            Change ça :

            System.out.println(desertBiomes);
            aint1[j1 + i1 * par3] = ((BiomeEntry)WeightedRandom
            .getItem(this
            .desertBiomes, (int)(this
            .nextLong(WeightedRandom
            .getTotalWeight(this
            .desertBiomes)))))
            .biome
            .biomeID;
            

            par ça :

            BiomeGenBase biome = ((BiomeEntry)WeightedRandom.getItem(this.desertBiomes, (int)(this.nextLong(WeightedRandom.getTotalWeight(this.desertBiomes))))).biome;
            if(biome == null) biome = leBiomeQueTuVeuxMettreSiçaRisqueDePlanter(MetUnBiomeDeLaCatégorieDesDésets).biomeID;
            aint1[j1 + i1 * par3] = biome.biomeID;
            

            Et pour la couleur, met un @Override au dessus de la fonction.

            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
            • S Hors-ligne
              sventus
              dernière édition par

              sauf que quand je met le override,  la fonction ne passe pas et me dit de supprimer le @Override 😕

              si je met ça :

              BiomeGenBase biome = ((BiomeEntry)WeightedRandom.getItem(this.desertBiomes, (int)(this.nextLong(WeightedRandom.getTotalWeight(this.desertBiomes))))).biome;
                                  if(biome == null) biome = (BiomeGenBase)(desertBiomes).biomeID;
                                  aint1[j1 + i1 * par3] = biome.biomeID;

              alors le biomeID est en erreur 😕

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

                “(BiomeGenBase)(desertBiomes)”, il faut que tu remplace ça par un biome fasant partie de la catégorie des déserts, donc BiomeGenBase.desert par exemple.

                L’erreur sur le Override indique que tu as mal écrit la fonction, déjà vérifies que t’es dans la classe de ton biome, puis, fais ctrl+space et commence à écrire le nom de la fonction.

                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
                • S Hors-ligne
                  sventus
                  dernière édition par

                  si j’écris ça : if(biome == null) biome = BiomeGenBase.desert.biomeID;

                  ça me demande de changer le type en “int”  et ma fonction est écrite comme cela :

                  @Override
                  public int getBiomeGrassColor(int p_150558_1_, int p_150558_2_, int p_150558_3_) {

                  return super.getBiomeGrassColor(p_150558_1_, p_150558_2_, p_150558_3_);
                  }

                  voila ce que ça me dit, mais je vois pas a quoi correspondent les trois variables ^^

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

                    Retire le .biomeID, je me suis trompé.
                    Les variables sont x, y et z.

                    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
                    • S Hors-ligne
                      sventus
                      dernière édition par

                      X y z pour des couleurs ?

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

                        x y et z sont toujours des coordonnées de blocs ou d’entités

                        Site web contenant mes scripts : http://SCAREXgaming.github.io

                        Pas de demandes de support par MP ni par skype SVP.
                        Je n'accepte sur skype que l…

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

                          La fonction à X, y et z comme paramètre pour que tu puisse retourner une couleur en fonction de la position si tu le souhaites.

                          Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

                          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
                          • S Hors-ligne
                            sventus
                            dernière édition par

                            Mais avec les coordonnés, je vois pas le rapport avec la couleur du bloc 😕

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

                              Va demander à Mojang.
                              Je pense que dans des rares cas c’est utile, je crois que c’est utilisé pour le “dégradé entre les biomes”.

                              Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

                              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
                              • S Hors-ligne
                                sventus
                                dernière édition par

                                @Override
                                public int getModdedBiomeGrassColor(int i )
                                {
                                return 0x76785A;
                                }

                                voila la fonction que je devais utilisé, (je laisse ce topic ouvert pour mes futurs autres problèmes concernant le biome :D)

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

                                  Nan il ne faut mieux pas le laisser ouvert pour plusieurs raisons. premièrement le titre n’est pas explicite, et il me semble que tu as rencontré plusieurs problèmes différents en rapport avec ton biome, n’est-ce pas ? Alors comment veux-tu que quelqu’un ayant un ou les mêmes probs que toi le retrouve ?? Il faut renommer le titre. D’autre part il fait 9 pages, ce qui est déjà beaucoup pour un poste dans “support pour les moddeurs” (enfin on a déjà vu pire, je te rassure x))
                                  Alors si tu as d’autres problèmes, faudra mieux recréer un autre poste comportant un titre bien précis, plutôt que de continuer sur celui-ci, au risque qu’il ne devienne + un roman qu’une simple demande d’aide ^^’

                                  1 réponse Dernière réponse Répondre Citer 1
                                  • robin4002R Hors-ligne
                                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                    dernière édition par

                                    Merci Plaigon, tu m’as éviter de rédiger un petit paragraphe d’explication 😄
                                    (je pense que je vais ajouter ça dans le règlement de la section).

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

                                    MINECRAFT FORGE FRANCE © 2024

                                    Powered by NodeBB