Générer des minerais
-
package shaarfight.worldgen; import java.util.Random; import shaarfight.common.ShaarMod; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.feature.WorldGenMinable; import cpw.mods.fml.common.IWorldGenerator; public class IlluveWorldGeneration implements IWorldGenerator { @Override public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { } { switch(world.provider.dimensionID) { case -1: this.generateNether(world, chunkX * 16, chunkZ * 16, random); break; } private void generateNether(World world, int x, int z, Random rand) { for(int i = 0; i < 1; i++) { (new WorldGenMinable(ShaarMod.oreIlluve, 0, 5, Blocks.netherrack)).generate(world, rand, x + rand.nextInt(16), rand.nextInt(120), z + rand.nextInt(16)); } { } } } } -
Comme ça, ça devrait être bon oui.
-
maintenant j’ai des erreurs sur switch(world.provider.dimensionID) sur le world, ainsi que sur this.generateNether(world, chunkX * 16, chunkZ * 16, random); sur le world, chunkX, chunkZ, random mais aussi sur private void generateNether(World world, int x, int z, Random rand) sur les virgules et sur la parenthèse de fin.
-
Il doit y avoir des micro-caractères dans ces lignes, regarde si tu les vois.
-
Je ne vois rien dedans
-
Réécrit les caractères à main.
-
Sa met fait toujours pareil
-
Remplace dimensionID par dimensionId
Pour le reste je sais pas. -
sa change rien, bon bah je vais abandonner

-
Eclipse te donne quoi comme erreur ? (le nom de l’erreur).
-
pour les virgules : Syntax error on token “,”, ; expected
pour le world.provider.dimensionId : world cannot be resolved to a variable
pour le generateNether : void is an invalid type for the variable generateNetherSi ce n’est pas bah je sais pas je n’est que cela.
-
En fait j’avais pas fait attention, la classe était completement fausse niveau accolade. Prend celle-ci :
package shaarfight.worldgen; import java.util.Random; import shaarfight.common.ShaarMod; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.feature.WorldGenMinable; import cpw.mods.fml.common.IWorldGenerator; public class IlluveWorldGeneration implements IWorldGenerator { @Override public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { switch(world.provider.dimensionId) { case -1: this.generateNether(world, chunkX * 16, chunkZ * 16, random); break; } } private void generateNether(World world, int x, int z, Random rand) { for(int i = 0; i < 1; i++) { (new WorldGenMinable(ShaarMod.oreIlluve, 0, 5, Blocks.netherrack)).generate(world, rand, x + rand.nextInt(16), rand.nextInt(120), z + rand.nextInt(16)); } } } -
Plus aucune erreur cependant mon minerai ne se genere toujours pas je comprend pas.
-
package shaarfight.worldgen; import java.util.Random; import shaarfight.common.ShaarMod; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.feature.WorldGenMinable; import cpw.mods.fml.common.IWorldGenerator; public class IlluveWorldGeneration implements IWorldGenerator { @Override public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { switch(world.provider.dimensionId) { case -1: this.generateNether(world, chunkX * 16, chunkZ * 16, random); break; } } private void generateNether(World world, int x, int z, Random rand) { //change le i < 100 pour augmenter ou diminuer la rareté car a 1 il vas pas beaucoup se générer. for(int i = 0; i < 100; i++) { (new WorldGenMinable(ShaarMod.oreIlluve, 0, 5, Blocks.netherrack)).generate(world, rand, x + rand.nextInt(16), rand.nextInt(120), z + rand.nextInt(16)); } } } -
Merci sa marche mais quelle est la rareté du quartz ?
-
je ne me rappelle plus dans quel classe elle est mise désoler, tu devrais regarder dans le code de la dimension

-
Ce qui me dérange, c’est ta notation avec les apostrophes.
Les apostrophes sont réservé pour les chars donc pour moi, ça porte a confusion de mettre tes “variables du tutoriel” entre apostrophe. -
Bon tutoriel (un peu rapide quand même) mais Agabou, tu as oublié de mentionner une classe de minecraft bien sympatique, BlockOre. Voilà pour ma part comment je fait la déclaration de mon minerai (si ça peut aider quelqu’un pour la dureté du minerai par exemple) :
cookieOre = new BlockCookieOre(Material.rock).setBlockName("cookieOre").setResistance(5.0F).setHardness(3.0F).setStepSound(Block.soundTypePiston).setBlockTextureName(MODID + ":cookie_ore")Et la classe BlockCookieOre :
//Les imports import java.util.Random; import com.squixdev.cookieparty.common.CookieParty; import net.minecraft.block.Block; import net.minecraft.block.BlockOre; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.world.World; public class BlockCookieOre extends BlockOre { public BlockCookieOre(Material p_i45394_1_) { super(); // TODO Auto-generated constructor stub } //ici on retourne l'item droppé public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { return Items.cookie; } //ici on retourne la quantité droppée public int quantityDropped(Random p_149745_1_) { return 4 + p_149745_1_.nextInt(5); //j'utilise ici un random pour faire varier la quantité (ici égale au Lapis) } //ici on gère ce qui ce passe après que le bloc ait été détruit (s'exécute avant OnBlockDestroyed) - (totalement optionnel) @Override public void onBlockHarvested(World p_149681_1_, int p_149681_2_, int p_149681_3_, int p_149681_4_, int p_149681_5_, EntityPlayer p) { p.addStat(CookieParty.achievementCookieMiner, 1); super.onBlockHarvested(p_149681_1_, p_149681_2_, p_149681_3_, p_149681_4_, p_149681_5_, p); } //ici on gère l'outil minimal requis (valeurs de minecraft : net.minecraft.item, rechercher "ToolMaterial") @Override public void setHarvestLevel(String toolClass, int level) { // TODO Auto-generated method stub super.setHarvestLevel(toolClass, 1); } @Override public Block setHardness(float p_149711_1_) { // TODO Auto-generated method stub return super.setHardness(p_149711_1_); } } -
@Squix
Oui, utile mais pas plus que sa car 90 % des fonction sont rapide autrement que sa, sinon pense a renomme tes argument das les fonction, sinon quand tu coderas des chose 1^48 plus complexe tu ne t’y retrouvera plus. -
Voilà, j’ai modifié mon tutoriel et il supporte maintenant la génération avec métadata, ainsi que dans le Nether et dans l’End !
