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

    Résolu Génération de minerai dans le Nether

    1.8.x
    1.8
    3
    13
    2266
    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.
    • H
      Heinair dernière édition par

      Alors voilà j’ai essayé de générer un minerai dans le nether, mais rien à faire il ne veut pas apparaître.

      [font=Source Code Propackage ]fr.zeiyo.zeiyocraft.world%(#cc7832)[;
      ]
      import java.util.Random%(#cc7832)[;
      ]
      import fr.zeiyo.zeiyocraft.block.ZeiyoBlocks%(#cc7832)[;
      ]import net.minecraft.block.state.pattern.BlockHelper%(#cc7832)[;
      ]import net.minecraft.init.Blocks%(#cc7832)[;
      ]import net.minecraft.util.BlockPos%(#cc7832)[;
      ]import net.minecraft.world.World%(#cc7832)[;
      ]import net.minecraft.world.chunk.IChunkProvider%(#cc7832)[;
      ]import net.minecraft.world.gen.feature.WorldGenMinable%(#cc7832)[;
      ]import net.minecraft.world.gen.feature.WorldGenerator%(#cc7832)[;
      ]import net.minecraftforge.fml.common.IWorldGenerator%(#cc7832)[;
      ]
      public class ZeiyoWorldGen implements IWorldGenerator
      {
      
          private WorldGenerator gen_onyx%(#cc7832)[;
      ]
          public ZeiyoWorldGen()
        {
              this.gen_onyx = new WorldGenMinable(ZeiyoBlocks.*onyxOre*.getDefaultState(), 9, BlockHelper.*forBlock*(Blocks.*netherrack*));
        } 
      
        %(#bbb529)[@Override
      ]   public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
           switch (world.provider.getDimensionId()) {
      
           case 0: // Overworld
      %(#cc7832)[         break;
      
      ]      case -1: %(#808080)[// Nether
      ]            this.runGenerator(this.gen_onyx, world, random, chunkX, chunkZ, 25, 0, 80)%(#cc7832)[;
      ]
      %(#cc7832)[            break;
      
      ]      case 1: %(#808080)[// End
      ]         %(#cc7832)[break;
      ]        
           }
        }
      
        private void runGenerator(WorldGenerator generator, World world, Random rand, int chunk_X, int chunk_Z, int chancesToSpawn, int minHeight, int maxHeight)
        {
            if (minHeight < 0 || maxHeight > 256 || minHeight > maxHeight)
                throw new IllegalArgumentException("Illegal Height Arguments for WorldGenerator")%(#cc7832)[;
      ]
             int heightDiff = maxHeight - minHeight + 1%(#cc7832)[;
      ]       for (int i = 0; i < chancesToSpawn; i ++)
            {
                int x = chunk_X * 16 + rand.nextInt(16)%(#cc7832)[;
      ]           int y = minHeight + rand.nextInt(heightDiff)%(#cc7832)[;
      ]           int z = chunk_Z * 16 + rand.nextInt(16)%(#cc7832)[;
      ]           generator.generate(world, rand, new BlockPos(x, y, z))%(#cc7832)[;
      ]       }
        }
      
      }
      
      

      J’ai déjà réussi de créer des minerais normaux, ils fonctionnent bien mais pour le Nether, je n’arrive vraiment pas à le faire marcher.

      Merci d’avance pour votre aide,
      Cordialement

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

        this.gen_onyx = new WorldGenMinable(ZeiyoBlocks.onyxOre.getDefaultState(), 9, BlockHelper.forBlock(Blocks.netherrack));
        ???
        Pourquoi BlockHelper.forBlock(Blocks.netherrack) et pas directement Blocks.netherrack ou Blocks.netherrack.getDefaultBlockState() ?

        1 réponse Dernière réponse Répondre Citer 0
        • H
          Heinair dernière édition par

          Parce que dans la classe WorldGenMinable ils utilisent ça :

          
          [font=Source Code Propublic ]WorldGenMinable(IBlockState p_i45630_1_, int p_i45630_2_)
          {
             this(p_i45630_1_, p_i45630_2_, BlockHelper.*forBlock*(Blocks.*stone*))%(#cc7832)[;
          ]}
          
          public WorldGenMinable(IBlockState p_i45631_1_, int p_i45631_2_, Predicate p_i45631_3_)
          {
             this.oreBlock = p_i45631_1_%(#cc7832)[;
          ]    this.numberOfBlocks = p_i45631_2_%(#cc7832)[;
          ]    this.field_175919_c = p_i45631_3_%(#cc7832)[;
          ]}
          
          
          1 réponse Dernière réponse Répondre Citer 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

            Ah oui. Je n’ai encore jamais fait de génération en 1.8 x)
            Personnellement je ne vois pas d’erreur.
            As-tu bien enregistré ton générateur ?

            1 réponse Dernière réponse Répondre Citer 0
            • H
              Heinair dernière édition par

              Beh ouai etant donné que les autres minerais marchent bien 😕

              
              [font=Source Code Propublic void ]init(FMLInitializationEvent e)      
              {
              
                 GameRegistry.*registerWorldGenerator*(new ZeiyoWorldGen(), 0)%(#cc7832)[;
              ]   ZeiyoCrafting.*createCrafts*()%(#cc7832)[;
              ]  
              
              }
              
              
              1 réponse Dernière réponse Répondre Citer 0
              • robin4002
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                Autre minerai ? Je ne vois qu’un minerai dans ta classe.

                1 réponse Dernière réponse Répondre Citer 0
                • H
                  Heinair dernière édition par

                  Je les ai masqués pour que que ce soit plus lisible ^^

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

                    Ce qui n’est pas une bonne idée. Bon ici ça ne gène pas trop, mais quand il y a des rapports de crash avec la ligne indiqué dedans c’est bien embêtant.
                    Ajoutes du debug pour vérifier que ton code est bien appelé.

                    1 réponse Dernière réponse Répondre Citer 0
                    • H
                      Heinair dernière édition par

                      Je viens de réessayer, ça marche toujours pas dans le Nether en revanche le générer dans l’Ender et dans l’Overworld marche bien alors je trouve ça vraiment bizarre …

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

                        Rajoute des logs dans ta fonction pour voir si la génération est appelée

                        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
                        • H
                          Heinair dernière édition par

                          Etant donné que la console est flood de mon println lors de la génération, je peux te dire qu’elle est bien appellée ^

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


                            Avec les mêmes valeurs.
                             ```java
                            package fr.minecraftforgefrance.test;

                            import java.util.Random;

                            import net.minecraft.block.state.pattern.BlockHelper;
                            import net.minecraft.init.Blocks;
                            import net.minecraft.util.BlockPos;
                            import net.minecraft.world.World;
                            import net.minecraft.world.chunk.IChunkProvider;
                            import net.minecraft.world.gen.feature.WorldGenMinable;
                            import net.minecraft.world.gen.feature.WorldGenerator;
                            import net.minecraftforge.fml.common.IWorldGenerator;
                            import net.minecraftforge.fml.common.Mod;
                            import net.minecraftforge.fml.common.Mod.EventHandler;
                            import net.minecraftforge.fml.common.event.FMLInitializationEvent;
                            import net.minecraftforge.fml.common.registry.GameRegistry;

                            @Mod(modid = “test”, name = “Test”, version = “0.0.0”)
                            public class ModTest
                            {
                                @EventHandler
                                public void init(FMLInitializationEvent event)
                                {
                                    GameRegistry.registerWorldGenerator(new TestGenerator(), 0);
                                }

                            public static class TestGenerator implements IWorldGenerator
                                {
                                    private WorldGenerator genDiam = new WorldGenMinable(Blocks.diamond_block.getDefaultState(), 9, BlockHelper.forBlock(Blocks.netherrack));
                                    @Override
                                    public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
                                    {
                                        if(world.provider.getDimensionId() == -1)
                                        {
                                            this.runGenerator(this.genDiam, world, random, chunkX, chunkZ, 25, 0, 80);
                                        }
                                    }

                            private void runGenerator(WorldGenerator generator, World world, Random rand, int chunk_X, int chunk_Z, int chancesToSpawn, int minHeight, int maxHeight)
                                    {
                                        if(minHeight < 0 || maxHeight > 256 || minHeight > maxHeight)
                                            throw new IllegalArgumentException(“Illegal Height Arguments for WorldGenerator”);

                            int heightDiff = maxHeight - minHeight + 1;
                                        for(int i = 0; i < chancesToSpawn; i++)
                                        {
                                            int x = chunk_X * 16 + rand.nextInt(16);
                                            int y = minHeight + rand.nextInt(heightDiff);
                                            int z = chunk_Z * 16 + rand.nextInt(16);
                                            generator.generate(world, rand, new BlockPos(x, y, z));
                                        }
                                    }
                                }
                            }

                            1 réponse Dernière réponse Répondre Citer 0
                            • H
                              Heinair dernière édition par

                              Après plusieurs essais ça a finalement marché, bizarre …

                              1 réponse Dernière réponse Répondre Citer 0
                              • 1 / 1
                              • Premier message
                                Dernier message
                              Design by Woryk
                              Contact / Mentions Légales

                              MINECRAFT FORGE FRANCE © 2018

                              Powered by NodeBB