Créer un arbre
-
Oui, donc même en changeant le << extends generator >>en << implements IWorldGenerator >>, ça bug toujours, et j’ai remarqué aussi, si je rajoute le @Override avant <<public boolean=“” generate(world=“” world….=“”>> et bien tout ça est aussi surligné, quand je passe le souris dessus, il ne me propose que d’enlever le @Override…
Ca doit venir d’un truc tout bête c’est sûr et certain, mais de quoi, là je ne vois pas…</public>
-
Très long tutoriel, je vais voir si je peux faire une version en vidéo. Il faudra aussi le passage des correcteurs, car il y a beaucoup de faute.
@bbcmh3 ta classe bbcmh3treeblueWorldGen n’est pas bonne, regarde mieux le tutoriel.
-
@robin4002 : Ce src.zip de ce sujet n’est plus bon car entre temps, Diangle m’a passé tout son code ré-écrit et j’ai remis l’archive à jour sous un autre post -> http://www.minecraftforgefrance.fr/showthread.php?tid=1110
Le problème, c’est que exactement les mêmes fichiers avec exactement les même codes, ça ne fonctionne pas chez moi alors que chez lui oui ! ^^
-
@‘robin4002’:
Très long tutoriel, je vais voir si je peux faire une version en vidéo. Il faudra aussi le passage des correcteurs, car il y a beaucoup de faute.
@bbcmh3 ta classe bbcmh3treeblueWorldGen n’est pas bonne, regarde mieux le tutoriel.
Il le sais, plus tard je suis passer dessus, pour moi sa marcher très bien, mais pour lui sa ne marche pas, aussi je pourrais voir pour faire le tuto en vidéo (quand j’ai un peu plus de temps).
-
Il le sais, plus tard je suis passer dessus, pour moi sa marcher très bien, mais pour lui sa ne marche pas, aussi je pourrais voir pour faire le tuto en vidéo (quand j’ai un peu plus de temps).
Je ne sais pas si tu as vu, mais je viens de lui dire cela juste au dessus ! ^^
-
donc voilà le tutoriel a été corrigé par gagoi.
-
Hello , j’ai suivi le tutoriel et euuh mon block pousse apparaît 6 fois dans le menu créa

Que faire ?
-
@‘Legrandfifou’:
Hello , j’ai suivi le tutoriel et euuh mon block pousse apparaît 6 fois dans le menu créa

Que faire ?
Tu as du mettre des metadata sans faire gaffe.
Sinon envoie la classe. -
Voila ma classe blockPousse ```java
package mod.common;import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.BlockSapling;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.util.IIcon;public class BlockPousse extends BlockSapling
{
public BlockPousse()
{
super();
float f = 0.4F;
setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, f * 2.0F, 0.5F + f);
this.setCreativeTab(CreativeTabs.tabDecorations);
}@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int metadata)
{
return blockIcon;
}@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iiconRegister)
{
this.blockIcon = iiconRegister.registerIcon(this.getTextureName());
}}
-
Déjà il te manque des fonctions.
-
Ah oui , je ne sais pas comment j’ai fait pour louper cette partie de code ! Merci Diangle !
-
Hello j’ajoute un message à la suite mais personne n’a répondu entre temps et j’ai un problème avec la partie génération dans le BONUS , je suis en 1.7.10 et je pense qu’il y a des codes qui change mais je n’arrive pas a résoudre . . .
classe principale : registerWorldGenerator souligné en rouge
package mod.common; import cpw.mods.fml.common.IWorldGenerator; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; import java.awt.Color; import mod.proxy.CommonProxy; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.EnumHelper; @Mod(modid="modminecraft", name="Mod Minecraft", version="1.0") public class ModMinecraft { public static Item itemFlechette; public static Item itemSarbacane; public static Item itemSeve; public static Item itemSevewithmosquito; public static Item itemFrogLegs; public static Item itemFlechetteEmpty; public static Item itemFrogLegsCooked; public static Item itemSyringe; public static Item itemSyringewithblood; public static Item itemADNofFrog; public static Item itemSuperAxe; public static Block BlockBarriere; public static Block BlockTronc; public static Block BlockFeuille; public static Block BlockPousse; public static Item.ToolMaterial toolAxe = EnumHelper.addToolMaterial("toolAxe", 2, 400, 12.0F, 4.0F, 18); @Mod.Instance("modminecraft") public static ModMinecraft instance; public static final String MODID = "modminecraft"; @SidedProxy(clientSide="mod.proxy.ClientProxy", serverSide="mod.proxy.CommonProxy") public static CommonProxy proxy; @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { itemFlechette = new DinoItem().setUnlocalizedName("itemFlechette").setCreativeTab(CreativeTabs.tabCombat); itemSarbacane = new SarbacaneItem().setUnlocalizedName("itemSarbacane").setCreativeTab(CreativeTabs.tabCombat); itemSeve = new SeveItem().setUnlocalizedName("itemSeve").setCreativeTab(CreativeTabs.tabMaterials); itemSevewithmosquito = new ItemSevewithmosquito().setUnlocalizedName("itemSevewithmosquito").setCreativeTab(CreativeTabs.tabMaterials); itemFrogLegs = new itemFrogLegs().setUnlocalizedName("itemFrogLegs").setCreativeTab(CreativeTabs.tabFood); itemFlechetteEmpty = new itemFlechetteEmpty().setUnlocalizedName("itemFlechetteEmpty").setCreativeTab(CreativeTabs.tabMaterials); itemFrogLegsCooked = new itemFrogLegsCooked(8, 0.3F, false).setUnlocalizedName("itemFrogLegsCooked").setCreativeTab(CreativeTabs.tabFood); itemSyringe = new itemSyringe().setUnlocalizedName("itemSyringe").setCreativeTab(CreativeTabs.tabTools).setMaxStackSize(1); itemSyringewithblood = new itemSyringewithblood().setUnlocalizedName("itemSyringeWithBlood").setCreativeTab(CreativeTabs.tabMaterials).setMaxStackSize(1); itemADNofFrog = new itemADNofFrog().setUnlocalizedName("itemADNofFrog").setCreativeTab(CreativeTabs.tabMaterials).setMaxStackSize(1); itemSuperAxe = new itemSuperAxe(toolAxe).setUnlocalizedName("itemsuperAxe").setCreativeTab(CreativeTabs.tabTools).setMaxStackSize(1); BlockBarriere = new BlockBarriere(Material.rock).setBlockName("blockBarriere").setCreativeTab(CreativeTabs.tabBlock); BlockTronc = new BlockTronc().setBlockName("blockTronc").setCreativeTab(CreativeTabs.tabBlock).setHardness(2.0F).setBlockTextureName("modminecraft:blockTronc"); BlockFeuille = new BlockFeuille().setBlockName("blockFeuille").setCreativeTab(CreativeTabs.tabBlock).setHardness(0.1F).setBlockTextureName("modminecraft:blockFeuille"); BlockPousse = new BlockPousse().setBlockName("blockPousse").setHardness(0.5F).setBlockTextureName("modminecraft:blockPousse"); Ruins structureGenerator = new Ruins(); GameRegistry.registerItem(itemFlechette, "item_Flechette"); GameRegistry.registerItem(itemSarbacane, "item_Sarbacane"); GameRegistry.registerItem(itemSeve, "item_Seve"); GameRegistry.registerItem(itemSevewithmosquito, "item_Sevewithmosquito"); GameRegistry.registerItem(itemFrogLegs, "item_FrogLegs"); GameRegistry.registerItem(itemFlechetteEmpty, "item_FlechetteEmpty"); GameRegistry.registerItem(itemFrogLegsCooked, "item_FrogLegsCooked"); GameRegistry.registerItem(itemSyringe, "item_Syringe"); GameRegistry.registerItem(itemSyringewithblood, "item_SyringeWithBlood"); GameRegistry.registerItem(itemADNofFrog, "item_ADNofFrog"); GameRegistry.registerBlock(BlockBarriere, "block_barriere"); GameRegistry.registerItem(itemSuperAxe, "item_SuperAxe"); GameRegistry.registerBlock(BlockTronc, "block_tronc"); GameRegistry.registerBlock(BlockFeuille, "block_feuille"); GameRegistry.registerBlock(BlockPousse, "block_pousse"); GameRegistry.registerWorldGenerator(new WorldGeneration(), 0); GameRegistry.registerTileEntity(TileEntityBarriere.class, "Barriere"); } @Mod.EventHandler public void init(FMLInitializationEvent event) { proxy.registerRender(); proxy.registerTileEntityRender(); GameRegistry.addRecipe(new ItemStack(itemFlechette, 4), new Object[] { "ZX ", "XYX", " XE", Character.valueOf('X'), Items.stick, Character.valueOf('Y'), new ItemStack(Items.potionitem, 1, 16426), Character.valueOf('Z'), Items.iron_ingot, Character.valueOf('E'), new ItemStack(Blocks.wool, 1, 14) }); GameRegistry.addShapelessRecipe(new ItemStack(itemFlechette, 1), new Object[] { new ItemStack(Items.potionitem, 1, 16426), new ItemStack(itemFlechetteEmpty, 1) }); GameRegistry.addRecipe(new ItemStack(itemSarbacane), new Object[] { "XZ ", "ZXZ", " ZX", Character.valueOf('X'), Items.reeds, Character.valueOf('Z'), Items.string }); GameRegistry.addRecipe(new ItemStack(itemSyringe), new Object[] { "ZX ", "X X", " XY", Character.valueOf('Z'), Items.iron_ingot, Character.valueOf('Y'), Items.stick, Character.valueOf('X'), new ItemStack(Blocks.glass, 1) }); GameRegistry.addRecipe(new ItemStack(itemFlechetteEmpty, 4), new Object[] { "ZX ", "X X", " XE", Character.valueOf('X'), Items.stick, Character.valueOf('Y'), new ItemStack(Items.potionitem, 1, 16426), Character.valueOf('Z'), Items.iron_ingot, Character.valueOf('E'), new ItemStack(Blocks.wool, 1, 14) }); GameRegistry.addRecipe(new ItemStack(itemSuperAxe), new Object[] { " XX", " ZX", " ", Character.valueOf('Z'), Items.diamond_axe, Character.valueOf('X'), Items.diamond }); GameRegistry.addRecipe(new ItemStack(BlockBarriere, 2), new Object[] { "XXX", "YYY", "XXX", Character.valueOf('X'), Items.iron_ingot, Character.valueOf('Y'), Blocks.iron_bars }); GameRegistry.addSmelting(itemFrogLegs, new ItemStack(itemFrogLegsCooked, 1), 0.1F); EntityRegistry.registerGlobalEntityID(EntityFrog.class, "EntityFrog", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB()); EntityRegistry.registerModEntity(EntityFrog.class, "EntityFrog", 420, instance, 40, 1, true); EntityRegistry.registerGlobalEntityID(EntityFlechette.class, "RenderFlechetteun", EntityRegistry.findGlobalUniqueEntityId()); EntityRegistry.registerModEntity(EntityFlechette.class, "RenderFlechetteun", 421, instance, 40, 1, true); EntityRegistry.registerGlobalEntityID(EntityBrachiosaurus.class, "EntityBrachiosaurus", EntityRegistry.findGlobalUniqueEntityId(), new Color(4, 52, 91).getRGB(), new Color(119, 175, 219).getRGB()); EntityRegistry.registerModEntity(EntityBrachiosaurus.class, "EntityBrachiosaurus", 422, instance, 40, 1, true); GameRegistry.registerTileEntity(TileEntityBarriere.class, "TileEntityBarriere"); BiomeListTuto.BiomeList(); } @Mod.EventHandler public void postInit(FMLPostInitializationEvent event) { BiomeListTuto.worldTypeTuto = new WorldTypeTuto(); } }Ma classe WorldGeneration : WorldGeneration,generate(Random random, int chunkX, int chunkZ, World world,IChunkProvider chunkGenerator, IChunkProvider chunkProvider) et (x, y - 1, z) seulement x,y,z sont souligné en rouge
package mod.common; import java.util.Random; import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.feature.WorldGenerator; import cpw.mods.fml.common.IWorldGenerator; public class WorldGeneration extends WorldGenerator{ @Override public boolean generate(Random random, int chunkX, int chunkZ, World world,IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { if(world.getBlock(x, y - 1, z) == Blocks.grass && world.isAirBlock(x, y , z)) { new mod.common.WorldGenAncientAcacia(true).generate(world, random, x, y, z); return true; } else { return false; } } } -
Il te manque le worldGenerator (avec les id de dimension).
-
Bon je crois que je suis perdu ^^ , quesque tu entend par il te manque le worldGenerator , la classe worldGenerator ? ou autre chose car la je vois pas du tout …
-
Il manque une classse comme la génération de minerai ^^.
public class Generator implements IWorldGenerator { @Override public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { switch (world.provider.dimensionId) { //0 = dimID case 0: generateOverworld(world, random, chunkX * 16, chunkZ * 16); } } private void generateOverworld(World world, Random random, int x, int z) { //50 = rarity for (int i = 0; i < 50; i++) { int x1 = x + rand.nextInt(16); int y1 = rand.nextInt(128); int z1 = z + rand.nextInt(16); //classe de génération de l'arbre (new WorldGenerationTutoTree()).generate(world, rand, x1, y1, z1); } } }Le code viens de ma tête il se peux que je me soit tromper.
-
Oké j’ai mes deux classes ! Sans aucune erreur donc je suis déjà super content le probleme suivant est le GameRegistry.registerWorldGenerator(new WorldGeneration(), 0); registerWorldGenerator reste souligner en rouge

-
Quelle est le message ?
-

Voilà l’erreur.
-
Ta classe WorldGeneration n’implémente pas l’interface IWorldGenerator …
-
Tu as créé la classe que j ai faite ? Si oui change la classe en ma classe (le nom dans la classe principale). Sinon crer la ou retourne. Voir le tuto
