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 ?


  • Administrateurs

    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 fichier

    
    package 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 845

    Merci Gugu je mets tout sa a la norme 🙂


  • Administrateurs

    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 ?


  • Administrateurs

    Change le setUnlocalizedName("")
    Ne mets pas d'espace, ni d'apostrophe.



  • Merci ! 🙂


Log in to reply