Génération de minerais dans un multiverse
-
Hello
je sais qu’en ce moment je créer beaucoup de topic mais j’ai énormément de problèmes.
Bref, j’ai voulus créer un monde multiverse avec les minerais de mon mod mais problème: il n’y a pas les minerais dans la map
J’ai essayer avec un seed mais pareil
-
Il suffit de retirer la condition ou le switch avec l’id de la dimension dans le générateur.
-
dans le mod ou avec la commande ?
comme par exemple /mv create test ?
-
Dans le mod
-
donc j’enlève :
switch(world.etc……){
}c’est bien ça ?
Edit:
Quand j’enlève le switch j’ai des érreurs à generateSurface(Random random, int chunkX, int chunkZ, World world), ça me dit de mettre un suppressionWarning ou de supprimer :
package fr.browneez.gen;
import cpw.mods.fml.common.IWorldGenerator;
import fr.browneez.locky.Main;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraft.world.WorldProvider;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.feature.WorldGenMinable;public class GenStats
implements IWorldGenerator
{
public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
{}
private void addOre(Block block, Block blockSpawn, Random random, World world, int posX, int posZ, int minY, int maxY, int minVeinSize, int maxVeinSize, 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);new WorldGenMinable(block, minVeinSize + random.nextInt(maxVeinSize - minVeinSize), blockSpawn).generate(world, random, xPos, yPos, zPos);
}
}private void generateSurface(Random random, int chunkX, int chunkZ, World world)
{
addOre(Main.Lockyumore, Blocks.stone, random, world, chunkX, chunkZ, 4, 13, 3, 5, 2);
addOre(Main.Titaniumore, Blocks.stone, random, world, chunkX, chunkZ, 4, 20, 4, 5, 3);
addOre(Main.Thoriumore, Blocks.stone, random, world, chunkX, chunkZ, 4, 45, 4, 10, 15);
}}
-
Envoie ton ancienne classe, avant que tu supprime le switch (quand il n’y avait pas d’erreurs) et met là entre balise java
-
Comme ça :
package fr.browneez.gen; import cpw.mods.fml.common.IWorldGenerator; import fr.browneez.locky.Main; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.WorldProvider; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.feature.WorldGenMinable; public class GenStats implements IWorldGenerator { public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { addOre(Main.Lockyumore, Blocks.stone, random, world, chunkX, chunkZ, 4, 13, 3, 5, 2); addOre(Main.Titaniumore, Blocks.stone, random, world, chunkX, chunkZ, 4, 20, 4, 5, 3); addOre(Main.Thoriumore, Blocks.stone, random, world, chunkX, chunkZ, 4, 45, 4, 10, 15); } private void addOre(Block block, Block blockSpawn, Random random, World world, int posX, int posZ, int minY, int maxY, int minVeinSize, int maxVeinSize, 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); new WorldGenMinable(block, minVeinSize + random.nextInt(maxVeinSize - minVeinSize), blockSpawn).generate(world, random, xPos, yPos, zPos); } } }
-
package fr.browneez.gen; import cpw.mods.fml.common.IWorldGenerator; import fr.browneez.lockycraft.Main; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.WorldProvider; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.feature.WorldGenMinable; public class GenStats implements IWorldGenerator { public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { switch (world.provider.dimensionId) { case -1: generateNether(random, chunkX * 16, chunkZ * 16, world); break; case 0: generateSurface(random, chunkX * 16, chunkZ * 16, world); break; case 1: generateEnd(random, chunkX * 16, chunkZ * 16, world); break; } } private void addOre(Block block, Block blockSpawn, Random random, World world, int posX, int posZ, int minY, int maxY, int minVeinSize, int maxVeinSize, 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); new WorldGenMinable(block, minVeinSize + random.nextInt(maxVeinSize - minVeinSize), blockSpawn).func_76484_a(world, random, xPos, yPos, zPos); } } private void generateEnd(Random random, int chunkX, int chunkZ, World world) {} private void generateSurface(Random random, int chunkX, int chunkZ, World world) { addOre(Main.LockyumOre, Blocks.stone, random, world, chunkX, chunkZ, 4, 13, 3, 5, 2); addOre(Main.TitaniumOre, Blocks.stone, random, world, chunkX, chunkZ, 4, 20, 4, 5, 3); addOre(Main.ThoriumOre, Blocks.stone, random, world, chunkX, chunkZ, 4, 45, 4, 10, 15); } private void generateNether(Random random, int chunkX, int chunkZ, World world) {} }
Je vien de remarquer que sur la bêta de mon mod, il y avais l’import :
import net.minecraft.world.WorldProvider
Mais la il n’est pas utilisé -
As-tu testé le code de robin ?
-
Non j’avais pas fait attention, je vais tester
Edit:
Je viens de tester et quand je fais : /mv create test normal, ça ne génère pas les minerais
La version de multiverse est : 2.5
-
Personnellement, j’ai changé ceci:
public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
switch (world.provider.dimensionId) {
case 0:
generateSurface(world, random, chunkX * 16, chunkZ * 16);
}
}Pour cela:
public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
if(world.provider.isSurfaceWorld()) {
generateSurface(world, random, chunkX * 16, chunkZ * 16);
}
}