• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved Impossible de générer des minerais

    1.8.x
    1.8
    3
    6
    956
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      francoKo last edited by

      Bonsoir à tous. J’ai un problème avec mon développement de mod en 1.8.8. Tout allait bien jusqu’au moment ou j’ai tenté de générer des minerais. Le bug est simple, les minerais ne se génèrent pas. Problématique, effectivement… Je vais vous montrer mes class. Et je précise aussi que je ne suis pas encore un boss dans la matière, même si je tente de me débrouiller ;).

      Class principale :

      http://pastebin.com/33z4wYfY

      Class WorldGen :

      http://pastebin.com/CqRp885A

      Class WorldRegister :

      http://pastebin.com/vBCKUmfy

      Voilà !
      Sinon, merci d’avance. Normalement, j’ai dû faire une orthographe correcte, ce que je trouve la moindre des politesses tout de même. Et désolé pour le sujet qui n’aura pas été très long et très développé, mais il est un peu tard et je pense avoir dit l’essentiel.

      1 Reply Last reply Reply Quote 0
      • BrokenSwing
        BrokenSwing Moddeurs confirmés Rédacteurs last edited by

        Pourquoi enregistre-tu 3 fois ton worldGenerator ?
        (Vu le poids de génération que tu as mis je dirais que tu pense qu’il faut l’enregistrer pour chaque dimension)

        J’ai modifié ta classe WorldGen :

        
        public class WorldGeneration implements IWorldGenerator {
        
        @Override
        public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
        {
        switch(world.provider.getDimensionId())
        {
        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 size, int spawnChance)
        {
        for(int i = 0; i < spawnChance; i++)
        {
        int defaultChunkSize = 16;
        int Xpos = posX + random.nextInt(defaultChunkSize);
        int Ypos = minY + random.nextInt(maxY - minY);
        int Zpos = posZ + random.nextInt(defaultChunkSize);
        
        IBlockState state = block.getDefaultState();
        BlockPos blockPos = new BlockPos(Xpos, Ypos, Zpos);
        
        new WorldGenMinable(state, size, BlockHelper.forBlock(blockSpawn)).generate(world, random, blockPos);
        }
        }
        
        private void GenerateNether(World world, int i, int j, Random random)
        {
        
        }
        
        private void GenerateOverWorld(World world, int i, int j, Random random)
        {
        addOre(Blocks.glass, Blocks.stone , random, world, i, j, 20, 100, 8, 500);
        }
        
        private void GenerateEnd(World world, int i, int j, Random random)
        {
        addOre(Blocks.glass, Blocks.netherrack , random, world, i, j, 20, 100, 8, 60);
        }
        
        

        J’ai changé chunkX = 16 en chunkX * 16, j’ai enlevé l’argument minV car il était inutile et j’ai aussi rajouté BlockHelper.forBlock(…) dans les argument de new WorldGenMinable pour que ça remplace le bon bloc. Voilà

        Et moi ça marche :
        :::

        :::

        Par contre j’ai pas d’image pour la seconde génération car tu remplace de la netherrack dans l’end mais il n’y en a pas, donc bon …

        1 Reply Last reply Reply Quote 0
        • robin4002
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

          Le problème étant que tu n’appelles jamais la fonction MainRegistry qui se trouve dans WorldRegisterSmy.
          Et d’ailleurs en effet pourquoi l’avoir mit 3 fois ? l’int n’est pas l’id de la dimension, c’est le poids du générateur.

          1 Reply Last reply Reply Quote 0
          • F
            francoKo last edited by

            Bonsoir, déjà merci de vos réponses. Effectivement, je pensais qu’il fallait mettre 3 fois l’int justement car je pensais que c’était comme l’id. Donc, j’ai tenté de mettre ton code modifié BrokenSwing, pourtant rien n’y fait. Ensuite, comment appeler cette fonction ? Désolé de ma noobitude mais je préfère quand même démarrer et apprendre à coder avec éclipse plutôt qu’avec MC Creator 😉 !

            1 Reply Last reply Reply Quote 0
            • robin4002
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

              Dans la classe principale tu ajoutes WorldRegisterSmy.MainRegistry(); comme tu l’as fait pour tes items. C’est la base de Java appeler une fonction …

              1 Reply Last reply Reply Quote 0
              • F
                francoKo last edited by

                Haaan ! Ca marche ! Merci 1 000 fois et 10 000 excuses pour ma nullité han ❤ !

                1 Reply Last reply Reply Quote 0
                • 1 / 1
                • First post
                  Last post
                Design by Woryk
                Contact / Mentions Légales

                MINECRAFT FORGE FRANCE © 2018

                Powered by NodeBB