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