Je suis d’accord avec toi.___@‘Diangle’:
De rien, et j’en profite pour demander si le tuto serait passable dans la section de génération.
pulganr, lis les derniers posts avant de poster, tu as dis la même chose que Diangle. ^^
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 ?
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
Si j’implente IWorldGeneration, WorldGeneration se souligne en rouge…
Voici mes classes :
Classe principale ```java
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();
}
WorldGeneration ```java package mod.common; import java.util.Random; import cpw.mods.fml.common.IWorldGenerator; import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenerator; public class WorldGeneration extends WorldGenerator { @Override public boolean generate(World world, Random random, int x, int y, int z) { 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; } } }
Generator ( comme pour les minerais )
package mod.common; import java.util.Random; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.chunk.IChunkProvider; import cpw.mods.fml.common.IWorldGenerator; public class Generator implements IWorldGenerator { @Override public void generate(Random rand, int X, int Z, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { switch(world.provider.dimensionId) { case -1: this.generateNether(world, X * 16, Z * 16, rand); case 0: this.generateSurface(world, X * 16, Z * 16, rand); case 1: this.generateEnd(world, X * 16, Z * 16, rand); } } private void generateSurface(World world, int x, int z, Random rand) { if(world.getBiomeGenForCoords(x, z).equals(BiomeGenBase.savanna)) { } if(world.getBiomeGenForCoords(x, z).equals(BiomeGenBase.savannaPlateau)) { } for (int i = 0; i < 50; i++) { int x1 = x + rand.nextInt(16); int y1 = rand.nextInt(128); int z1 = z + rand.nextInt(16); (new WorldGeneration()).generate(world, rand, x1, y1, z1); } } private void generateEnd(World world, int x, int z, Random rand) { } private void generateNether(World world, int x, int z, Random rand) { } }
La classe WorldGeneration ne doit pas être enregistré, seule Generator doit l’être.
Ah oui je me suis trompé merci !
De rien, et j’en profite pour demander si le tuto serait passable dans la section de génération.
Super tuto !
une question pourquoi ne pas avoir mit le tuto dans la catégorie génération et dimension, ce serait plus logic
Je suis d’accord avec toi.___@‘Diangle’:
De rien, et j’en profite pour demander si le tuto serait passable dans la section de génération.
pulganr, lis les derniers posts avant de poster, tu as dis la même chose que Diangle. ^^
@‘pulganr’:
une question pourquoi ne pas avoir mit le tuto dans la catégorie génération et dimension, ce serait plus logic
A vrai dire, le tuto est dans les deux. Donc ça ne gène pas.
Bonjour,
J’ai un problème dans la classe de la pousse:
@Override public void func_149878_d(World world, int x, int y, int z, Random random) { int l = world.getBlockMetadata(x, y, z) & 3; world.setBlockToAir(x, y, z); Object obj = null; obj = new ClassDeGeneration(true); if(!((WorldGenerator)(obj)).generate(world, random, x, y, z)) { world.setBlock(x, y, z, this, l, 3); } }
ClassDeGeneration() est souligné en rouge, il me dit que ça n’existe pas.
Merci d’avance,
rovergames
Il faut que tu remplace par le nom de ta classe de génération de l’arbre
@‘BrokenSwing’:
Il faut que tu remplace par le nom de ta classe de génération de l’arbre
Ah d’accord merci
Je voudrais savoir à quand une version pour la 1.8.9
Surement pas de sitôt puisque personne n’a entreprit de le faire.
Par ailleurs ça m’étonnerait que beaucoup de choses changent à travers la réalisation…