Beug génération des minerais



  • Bonjour,
    Après de nombreuses tentatives:

    Je viens vers vous pour vous demander quelque chose…

    J'ai créer mon serveur pvp faction moddé et je suis sur la génération des minerais en gros mes 3 minerais se génèrent normalement...

    et le plus puissant le xenite se génère seulement sur les premiers chunks de mon monde..

    J'ai même tester au World Edit de remplacer tout le xenite par 0 mais bien-sûr la map ne contient aucun xenite...
    Voici le code:

    package com.mod.sushi.world;
    
    import java.util.Random;
    
    import com.mod.sushi.init.BlockMod;
    
    import cpw.mods.fml.common.IWorldGenerator;
    import net.minecraft.block.Block;
    import net.minecraft.init.Blocks;
    import net.minecraft.world.World;
    import net.minecraft.world.chunk.IChunkProvider;
    import net.minecraft.world.gen.feature.WorldGenMinable;
    
    public class WorldGen implements IWorldGenerator
    {
        @Override
        public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
        {
            switch(world.provider.dimensionId)
            {
                case -1:
                    Generatenether(world, chunkX * 16, chunkZ * 16, random);
                    break;
    
                case 0:
                    GenerateOverWorld(world, chunkX * 16, chunkZ * 16, random);
                    break;
    
                case 1:
                    GenerateEnd(world, chunkX * 16, chunkZ * 16, random);
                    break;
            }
    
        }
    
        private void addOre(Block block, Block blockSpawn, Random random, World world, int posX, int posZ, int minY, int maxY, int minV, int maxV, int spawnChance)
        {
            for(int i = 0; i < spawnChance; i++)
            {
                int chunkSize = 16;
                int Xpos = posX + random.nextInt(chunkSize);
                int Ypos = minY + random.nextInt(maxY - minY);
                int Zpos = posZ + random.nextInt(chunkSize);
    
                new WorldGenMinable(block, maxV, blockSpawn).generate(world, random, Xpos, Ypos, Zpos);
            }
        }
    
        private void GenerateEnd(World world, int i, int j, Random random)
        {
    
        }
    
        private void GenerateOverWorld(World world, int i, int j, Random random)
        {
            addOre(BlockMod.rubis_ore, Blocks.stone, random, world, i, j, 1, 14, 2, 4, 4);
            addOre(BlockMod.saphire_ore, Blocks.stone, random, world, i, j, 1, 14, 1, 3, 2);
            addOre(BlockMod.xenite_ore, Blocks.stone, random, world, i, j, 2, 13, 1, 3, 2);
            addOre(BlockMod.bronze_ore, Blocks.stone, random, world, i, j, 1, 20, 1, 5, 6);
    
        }
    
        private void Generatenether(World world, int i, int j, Random random)
        {
            addOre(BlockMod.pierreenferminerai, Blocks.stone, random, world, i, j, 1, 14, 1, 1, 1);
    
        }
    
    }
    

    C'est vraiment étrange...


    C'est étrange, quand je vais en solo y'a tout le temps du xenite sauf que quand je déplace mon spawn avec mcedit et bien il y a toujours mes trois minerais bronze rubis saphire mais pas le xenite !!!

    Pendant que nous sommes avec les beugs j'ai vu que quand je cassais du sable du gravier etc.. Mon jeu planté



  • Tu dois faire une classe ou tu marque :

    import cpw.mods.fml.common.IWorldGenerator;
    import cpw.mods.fml.common.registry.GameRegistry;
    
    public class WorldRegister
    {
        public static void mainRegistry()
        {
            registerWorldGen(new WorldGen(), -1);
            registerWorldGen(new WorldGen(), 0);
            registerWorldGen(new WorldGen(), 1);
        }
    
        public static void registerWorldGen(IWorldGenerator worldGen, int probability)
        {
            GameRegistry.registerWorldGenerator(worldGen, probability);
        }
    }
    

    et dans ton fichier principale tu rajoute dans preInit

    WorldRegister.mainRegistry();


  • Administrateurs

    Salut, le deuxième argument de registerWorldGenerator est un poid et non une proba et encore moins l'id de la dimension. Donc enregistrer le générateur une fois avec 0 comme valeur suffit largement, pas la peine de le faire 3 fois.



  • Bonjour ma classe était déjà présente j'ai dis que en gros seul les 3 premiers se génèrent pas le 4ème..

    Code:

    package com.mod.sushi.world;

    import cpw.mods.fml.common.IWorldGenerator;
    import cpw.mods.fml.common.registry.GameRegistry;

    public class WorldRegister
    {
    public static void MainRegsitry()
    {
    registerWorldGen(new WorldGen(), -1);
    registerWorldGen(new WorldGen(), 0);
    registerWorldGen(new WorldGen(), 1);

    }

    public static void registerWorldGen(IWorldGenerator iGenerator, int probability)
    {
    GameRegistry.registerWorldGenerator(iGenerator, probability);
    }

    }

    Cela peut-il venir par exemple du filon

    addOre(BlockMod.bronze_ore, Blocks.stone, random, world, i, j, 1, 20, 1, 5, 6);
    addOre(BlockMod.rubis_ore, Blocks.stone, random, world, i, j, 1, 14, 2, 4, 4);
    addOre(BlockMod.saphire_ore, Blocks.stone, random, world, i, j, 1, 14, 1, 3, 2);
    addOre(BlockMod.xenite_ore, Blocks.stone, random, world, i, j, 2, 13, 1, 3, 1);

    Parce-que les autres marchent donc c'est bizarre

    Et aussi Robin je n'ai pas compris forcement ce que tu voulais dire


  • Administrateurs

    Il n'y a pas de raison que les trois premiers fonctionnent et pas le dernier.
    As-tu vérifiés avec un x-ray ?

    (ce que je voulais dire c'est que ça ne sert à rien d'avoir registerWorldGen(new WorldGen(), x); 3 fois).



  • Oui j'ai regardé avec un x-ray effectivement c'est cela que j'ai constaté que il y avait du rubis du saphire du bronze mais pas de xenite alors je pense que ça vient de la ligne de xenite ..



  • @'Sushi_Pvp':

    Oui j'ai regardé avec un x-ray effectivement c'est cela que j'ai constaté que il y avait du rubis du saphire du bronze mais pas de xenite alors je pense que ça vient de la ligne de xenite ..

    Tu as surment du oublier d'enregistrer ton block xenite_ore



  • non mon block existe je peux le prendre le poser etc…



  • Essaye de mettre les mêmes nombres que pour le bronze le problème viens peut-être de là 😉