11 mai 2016, 19:13

Bonjour,

Je suis en train de mettre mon mod à jour de la 1.8.9 vers la 1.9, la seul vrai difficulté que j’ai est celle de la class qui gère la génération. Je n’arrive pas à trouver l’erreur, malgres un poste sur le forum officiel de Forge une personne a pu me guider mais sans succès.

Je vous donne les 2 class qui gère la génération:

package fr.jules552.mod.WorldGeneration;

import java.util.Random;

import fr.jules552.mod.Structures.Structure1;
import fr.jules552.mod.init.BlocksMod;
import net.minecraft.block.Block;
import net.minecraft.block.BlockDirt;
import net.minecraft.block.BlockStone;
import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkGenerator;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.feature.WorldGenMinable;
import net.minecraftforge.fml.common.IWorldGenerator;

public class WorldGenAd implements IWorldGenerator
{
   public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
   {
       switch(world.provider.getDimension())
       {
           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);
       }
   }

   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 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, maxV).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)
   {
       // Minerais
       addOre(BlocksMod.AdamantiumOre, Blocks.stone, random, world, i, j, 4, 16, 1, 3, 10);
       addOre(BlocksMod.SilverOre, Blocks.stone, random, world, i, j, 4, 48, 3, 4, 18);
       addOre(BlocksMod.AluminiumOre, Blocks.stone, random, world, i, j, 4, 48, 3, 6, 18);

       // Structures
       int Xpos = i + random.nextInt(16);
       int Ypos = random.nextInt(128);
       int Zpos = j + random.nextInt(16);

       for(int x = 0; x < 500; x++)
       {
           new Structure1().genrate(world, random, new BlockPos(Xpos, Ypos, Zpos));
       }
   }

   private void GenerateEnd(World world, int i, int j, Random random)
   {

   }

   @Override
   public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider)
   {

   }
}

et la deuxième

package fr.jules552.mod.WorldGeneration;

import net.minecraftforge.fml.common.IWorldGenerator;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class WorldRegisterAd
{
   public static void MainRegistry()
   {
       regsiterWorldGen(new WorldGenAd(), -1);
       regsiterWorldGen(new WorldGenAd(), 0);
       regsiterWorldGen(new WorldGenAd(), 1);
   }

   private static void regsiterWorldGen(IWorldGenerator iGenerator, int weightProbability)
   {
       GameRegistry.registerWorldGenerator(iGenerator, weightProbability);

   }
}

En espérant que vous puissiez m’aider à régler ce problème, je précise que je ne suis qu’un simple amateur, donc une petit indication sur les choses à faire avec une explication serait grandement acceptée ^^
Merci d’avance