Résolu Plusieurs Blocs
-
Bonjour
j’ai un problème que je ne comprends pas
quand je met un bloc c’est tout a fait normal j’ai mon bloc dans le jeu avec son nom et sa texture
mais quand je met plusieurs blocs
ils ont le meme nom
quelqu’un saurait pourquoi ? -
Tu peux mettre ta class principale et celle de ton bloc?
-
?
je comprends pas -
Tu pourrais nous envoyer ta classe principale et celle de ton bloc?
Nous ne somme pas devin, on ne peut pas savoir d’où vient le problème sans le voir. -
package lunarblocks; import net.minecraft.block.Block; import net.minecraft.block.BlockFence; import net.minecraft.item.EnumToolMaterial; import net.minecraft.item.Item; 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.network.NetworkMod; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; import net.minecraftforge.common.Configuration; import net.minecraftforge.common.EnumHelper; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumToolMaterial; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemSeeds; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemTool; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.Event.Result; import net.minecraftforge.event.entity.player.UseHoeEvent; @Mod(modid="MLB", name="MoreLuneBlocks", version="1.0.0") @NetworkMod(clientSideRequired=true, serverSideRequired=false) // NE PAS MODIFIER CETTE LIGNE public class ModluneMain { public static Block BlockLADDERmoon; public static Item LP, LA, LS, LH, LPE, LSH; static EnumToolMaterial LUNARPICAXE = EnumHelper.addToolMaterial ("Runique", 3 ,1561 , 100F, 3F, 50); static EnumToolMaterial LUNAAXE = EnumHelper.addToolMaterial ("ACHE", 3, 1561, 10F, 5F, 50); static EnumToolMaterial LUNASWO = EnumHelper.addToolMaterial ("MSWORD", 0, 1000, 0, 10, 50); static EnumToolMaterial LUNAHOE = EnumHelper.addToolMaterial ("HOUEZ", 0,1561, 0, 2, 50); static EnumToolMaterial LPELLE = EnumHelper.addToolMaterial ("PELLEZ", 0,1561, 0, 2, 50); static EnumToolMaterial LSHEARS = EnumHelper.addToolMaterial ("PELLEZ", 0,1561, 0, 2, 50); public static Item DD; public static Item SS; public static Item CR; public static Item BR; public static Block BlockDirtMoon; public static Block BlockRizCulture; public static Item ItemRiz, ItemRizGraines; public static int LP9999, LA9998, LS9997, LH9996, LPE9995, LSH9994, DD9993, BlockRizCulture999, ItemRiz1000, ItemRizGraines10001, SS9992; @Instance("MLB") public static ModluneMain instance; @SidedProxy(clientSide="lunarblocks.ClientProxy", serverSide="lunarblocks.CommonProxy") public static CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event) { //Configuration Configuration cfg = new Configuration(event.getSuggestedConfigurationFile()); try { cfg.load(); LP9999 = cfg.getItem("pioche de la lune", 12000).getInt(); LA9998 = cfg.getItem("hache de la lune", 12000).getInt(); LS9997 = cfg.getItem("epee de la lune", 12000).getInt(); LH9996 = cfg.getItem("hoe de la lune", 12000).getInt(); LPE9995 = cfg.getItem("pelle de la lune", 12000).getInt(); LSH9994 = cfg.getItem("shears de la lune", 12000).getInt(); DD9993 = cfg.getItem("poussiere de terre", 12000).getInt(); BlockRizCulture999 = cfg.getItem("RizBlock", 12000).getInt(); ItemRiz1000 = cfg.getItem("Riz", 12000).getInt(); ItemRizGraines10001 = cfg.getItem("Graines de riz", 12000).getInt(); SS9992 = cfg.getItem("sushi", 12000).getInt(); } catch(Exception ex) { event.getModLog().severe("Failed to load configuration"); } finally { if(cfg.hasChanged()) { cfg.save(); } } // CULTURE DU RIZ BlockRizCulture = new BlockFOODCulture(999).setUnlocalizedName("Culture d'orge"); ItemRiz = new Item(1000).setUnlocalizedName("Riz").func_111206_d("rm:riz"); ItemRizGraines = new ItemSeeds(1001, this.BlockRizCulture.blockID, Block.tilledField.blockID).setUnlocalizedName("Graines de Riz").func_111206_d("rm:seeds_riz"); GameRegistry.registerBlock(BlockRizCulture, "Culture de Riz"); GameRegistry.registerItem(ItemRiz, "durizz", "MLB"); GameRegistry.registerItem(ItemRizGraines, "Graines de Riz", "MLB"); // SUSHI SS = new LSUSHI(9990, 8, 2, false).setUnlocalizedName("SUSHIPOP").func_111206_d("rm:Sushi"); //CEREALES de RIZ CR = new CEREALESDERIZ(9989).setUnlocalizedName("CERIZ").func_111206_d("rm:Riz_cereales"); //Bol de Riz BR = new BOLDERIZ(9988, 8, 2, false).setUnlocalizedName("BOLRIZE").func_111206_d("rm:Riz_Bowl"); //mon bloc de terre Block BR = new BlockDirty(2001).func_111022_d("rm:dirt").setLightValue(0.0f); GameRegistry.registerBlock(BR, "Dirt of the Moon"); LanguageRegistry.addName(BR, "Dirt of the Moon"); //arbre de la lune Block BL = new BlockWoodL(2002).func_111022_d("rm:wood").setHardness(2.0F); GameRegistry.registerBlock(BL, "Lunar Wood"); LanguageRegistry.addName(BL, "Lunar Wood"); } @EventHandler public void load(FMLInitializationEvent event) { //LUNARPICKAXE LP =new LUNARPICAXE(9999, EnumToolMaterial.EMERALD).setUnlocalizedName("FAPFAP").func_111206_d("rm:steel_pickaxe"); LanguageRegistry.addName(LP, "Moon Pickaxe"); GameRegistry.addRecipe(new ItemStack(LP), new Object[]{"XXX", "XYX", " Y ", 'X', Block.stone, 'Y', Item.stick}); //LUNARAXE LA =new LUNAAXE(9998,EnumToolMaterial.EMERALD).setUnlocalizedName("BLOPP").func_111206_d("rm:steel_axe"); LanguageRegistry.addName(LA, "Moon Axe"); GameRegistry.addRecipe(new ItemStack(LA), new Object[]{"XX", "XY", " Y", 'X', Block.stone, 'Y', Item.stick}); //LUNARSWORD LS =new LUNASSWORD(9997,EnumToolMaterial.WOOD).setUnlocalizedName("BLOb").func_111206_d("rm:steel_sword"); LanguageRegistry.addName(LS, "Moon Sword"); GameRegistry.addRecipe(new ItemStack(LS), new Object[]{" X", " X", " Y", 'X', Block.stone, 'Y', Item.stick}); //LUNARHOE LH =new LUNARHOE(9996,EnumToolMaterial.WOOD).setUnlocalizedName("BLO").func_111206_d("rm:steel_hoe"); LanguageRegistry.addName(LH, "Moon Hoe"); GameRegistry.addRecipe(new ItemStack(LH), new Object[]{"XX", " Y", " Y", 'X', Block.stone, 'Y', Item.stick}); //LUNARPELLE LPE =new LUNARPELLE(9995,EnumToolMaterial.WOOD).setUnlocalizedName("BLOG").func_111206_d("rm:steel_shovel"); LanguageRegistry.addName(LPE, "Moon Shovel"); GameRegistry.addRecipe(new ItemStack(LPE), new Object[]{" X", " Y", " Y", 'X', Block.stone, 'Y', Item.stick}); //LUNARSHEARS LSH =new LUNARSHEARS(9994,EnumToolMaterial.WOOD).setUnlocalizedName("BLOSHEARS").func_111206_d("rm:steel_shears"); LanguageRegistry.addName(LSH, "Moon Shears"); GameRegistry.addRecipe(new ItemStack(LSH), new Object[]{"XXX", "XXX", "XXX", 'X', Block.stone}); // DIRT DUST proxy.registerRenderers(); DD = new DDUST(9993).func_111206_d("rm:DUST"); GameRegistry.registerItem(DD, "Dust of Dirt"); LanguageRegistry.addName(DD, "Dust of Dirt"); // CRAFT DIRT DUST GameRegistry.addRecipe(new ItemStack(DD), new Object[]{"XXX", "YXY", "XXX", 'X', Block.stone, 'Y', Block.wood}); // RECIPE SUSHI GameRegistry.addRecipe(new ItemStack(SS), new Object[]{"XXX", "YYY", "XXX", 'X', ModluneMain.ItemRiz , 'Y', Block.wood}); //cereales de RIZ GameRegistry.addRecipe(new ItemStack(CR), new Object[]{"XXX", "XXX", "XXX", 'X', ModluneMain.ItemRizGraines}); //Bol de Riz GameRegistry.addRecipe(new ItemStack(BR), new Object[]{" X", " Y", 'X', ModluneMain.CR, 'Y', Item.bowlEmpty}); //DIRT RECIPE GameRegistry.addRecipe(new ItemStack(Block.dirt), new Object[]{"XXX", "XXX", "XXX", 'X', ModluneMain.DD}); } @EventHandler public void postInit(FMLPostInitializationEvent event) { } }
package lunarblocks; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; public class DIRTDUST extends Item { public DIRTDUST(int id) { super(id); this.setCreativeTab(CreativeTabs.tabMaterials); } }
désoler j’avais pas vu la fonction java code
-
Alors:
-Tu n’as surement rien compris aux tuto ou tu as juste fait des copier collé sans rien essayer de comprendre.
-Tu fais un système de configuration mais tu ne l’utilise pas, de plus tu mets tout le temps le même id: 12000, sachant que les blocs sont limités à 4096.
-Pourquoi avoir mis ça après la déclaration de ton bloc de terre “.setLightValue(0.0f)”, c’est inutile il est à 0 par défaut.
-Et je ne croit pas que la seconde classe soit celle de ton bloc “extends Item”Informations suplémentaire à fournir:
-version mc
-version forge -
- Petit Hors-Sujet -
Quand on programme avec java, il y a un convention sur les noms de classes, de variables etc … pour que tout le monde puisse relire notre code.
Ici, rien n’est respecté.
Voilà la base de la convention :
Une classe commence par une Majuscule, et en miniscule sauf si c’est plusieurs mots.
Exemple : Block, BlockDirt, DirtDust, Entity, EntityCreeper sont des classes respectant cette convention.
Alors que BLOCK, block, BLOCKDIRT, blockDirt, Blockdirt, entity, Entitycreeper ne la respectent pas.
Ensuite, les variables :
Une variable commence par une miniscule, et les mots sont séparés par des majuscules.
Exemple : maxHealth, health, size, posY sont des variables respectant la convetion.
MAXHEALTH, maxhealth, MaxHealth ne la respectent pas.Les méthodes :
Les méthodes suivent la même convention que les variables ( exemple : this.setSize() etc… )
- Fin du Hors-Sujet -
-
Pour le set light value je lavais oublié celui la
j’ai mis a jour mon fichier de configuration et j’ai mis une id differente pour chaque bloc
et pour le bloc de terre c’est normal je me suis trompé de fichierpackage lunarblocks; import static net.minecraftforge.common.ForgeDirection.UP; import net.minecraft.block.Block; import net.minecraft.block.BlockDirt; import net.minecraft.block.BlockFlower; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.world.World; import net.minecraftforge.common.EnumPlantType; import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.IPlantable; import static net.minecraftforge.common.ForgeDirection.DOWN; import static net.minecraftforge.common.ForgeDirection.UP; import java.util.ArrayList; import java.util.List; import java.util.Random; import net.minecraft.block.material.Material; import net.minecraft.client.particle.EffectRenderer; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.boss.EntityDragon; import net.minecraft.entity.boss.EntityWither; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityXPOrb; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemAnvilBlock; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemCloth; import net.minecraft.item.ItemColored; import net.minecraft.item.ItemLeaves; import net.minecraft.item.ItemLilyPad; import net.minecraft.item.ItemMultiTextureTile; import net.minecraft.item.ItemPiston; import net.minecraft.item.ItemSlab; import net.minecraft.item.ItemSnow; import net.minecraft.item.ItemStack; import net.minecraft.stats.StatList; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntitySign; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ChunkCoordinates; import net.minecraft.util.Icon; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.StatCollector; import net.minecraft.util.Vec3; import net.minecraft.world.Explosion; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraft.world.WorldProviderEnd; import net.minecraftforge.common.EnumPlantType; import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.IPlantable; import net.minecraftforge.common.RotationHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class BlockDirty extends BlockDirt { public BlockDirty(int id) { super(id); this.setCreativeTab(CreativeTabs.tabBlock); } }
Minecraft 1.6.2
forge 845Merci Gugu je mets tout sa a la norme
-
Pense à faire CTRL + SHIFT + O, pour mettre à jour tes importations.
-
ok merci
-
Oh, et pour la mise en forme : CTRL+SHIFT+F mets une mise en forme bien jolie tout propre.
-
Ok Super
sinon pour les nom des blocs quelqu’un a la solution ? -
Change le setUnlocalizedName(“”)
Ne mets pas d’espace, ni d’apostrophe. -
Merci !