Creer un nouveau pickaxe (need help)

Ironfists

Bucheron
30 Avril 2011
147
0
11
Slt, après avoir cherché longtemp sur le net je n'ai trouvé AUCUN tuto sur comment on creer un nouveau outil (pickaxe), pour l'instant j'ai fait un mod, dans ce mod il y a une nouvelle pierre (emeraude) et quand je casse cette pierre je gagne une gemme d'emeraude. Et ce que je veut faire c'est de creer un pickaxe(pioche) a partir de ces gemmes d'emeraudes. Voici mon enum:





package net.minecraft.src;

public enum EnumToolMod {

EMERAUDE("EMERAUDE", 5, 3, 831, 12F, 3);

private EnumToolMod(String s, int i, int j, int k, float f, int l)
{
harvestLevel = j;
maxUses = k;
efficiencyOnProperMaterial = f;
damageVsEntity = l;
}

public int getMaxUses()
{
return maxUses;
}

public float getEfficiencyOnProperMaterial()
{
return efficiencyOnProperMaterial;
}

public int getDamageVsEntity()
{
return damageVsEntity;
}

public int getHarvestLevel()
{
return harvestLevel;
}

private final int harvestLevel;
private final int maxUses;
private final float efficiencyOnProperMaterial;
private final int damageVsEntity;

}



Bon voila les caractéristiques des objets en emeraudes, maitenant je sais pas quoi faire pour que j'ai une pioche dans le jeu qui fonctionne avec ces caractéristiques...
si quelqun m'aide sa serai vraiment bien parceque je bloque la.
 
Bon, je peut pas t'aider mais, j'encourage car ce sera super une pioche en émeraude!
Sera elle plus puissante que celle en diamant (difficile à faire)?
 
Cherche dans le core du mod Millénaire, il y a une pioche non craftable par conter qu'il est plus efficace que celle en diamant, c'est celle de Norman dans mes souvenir
 
Alors dans EnumToolMaterial on voit la vitesse de chaque matière, (diamand = 8F et OR = 12F par exemple)

celle en emeraude faudrai qu'elle fasse 13F et qui se casse après avoir miné 832 blocs (lui en diamand c'est 1561), et faut qu'elle peut tout miner (en gros c'est comme une pioche en diamand mais plus puissant).

Franchement si tu m'aide a faire cette pioche avec ces caractéristiques sa serai super car si je comprend je pourrai continuer mon mod et j'ai pas mal d'idées

Elouhi a dit:
Cherche dans le core du mod Millénaire, il y a une pioche non craftable par conter qu'il est plus efficace que celle en diamant, c'est celle de Norman dans mes souvenir

ba je sais pas comment faire passer les .class en .java pour les lires

Je comprend pas, je croit que j'ai rien oublié pour faire la pioche mais quand je recompile j'ai un message d'erreur:



voici les 3 fichiers sur lequel il y a la pioche:



mod_mymod.java
Code:
    package net.minecraft.src;

    import java.util.Random;

    public class mod_mymod extends BaseMod
    {
	    public mod_mymod()
       {
          ModLoader.RegisterBlock(Emeraude);
          Emeraude.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/ModTexture/Emeraude.png");
          EmeraudeGemme.iconIndex = ModLoader.addOverride("/gui/items.png", "/ModTexture/EmeraudeGemme.png");         
		  EmeraudePoussiere.iconIndex = ModLoader.addOverride("/gui/items.png", "/ModTexture/EmeraudePoussiere.png"); 
          EmeraudePickaxe.iconIndex = ModLoader.addOverride("/gui/items.png", "/ModTexture/EmeraudePioche.png");		 
		 
		  ModLoader.AddName(Emeraude, "Bloc d'Emeraude");
          ModLoader.AddName(EmeraudeGemme, "Emeraude");    
		  ModLoader.AddName(EmeraudePoussiere, "Poussière d'Emeraude");
	   	  ModLoader.AddName(EmeraudePickaxe, "Pioche en Emeraude");

  		  ModLoader.RegisterBlock(Rubis);
          Rubis.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/ModTexture/Rubis.png");
          RubisGemme.iconIndex = ModLoader.addOverride("/gui/items.png", "/ModTexture/RubisGemme.png");         
          RubisPoussiere.iconIndex = ModLoader.addOverride("/gui/items.png", "/ModTexture/RubisPoussiere.png");		 
          EmeraldPoussiere.iconIndex = ModLoader.addOverride("/gui/items.png", "/ModTexture/EmeraldPoussiere.png");		 
		  OnyxPoussiere.iconIndex = ModLoader.addOverride("/gui/items.png", "/ModTexture/OnyxPoussiere.png");
		  OnyxGemme.iconIndex = ModLoader.addOverride("/gui/items.png", "/ModTexture/OnyxGemme.png");
		 
		  ModLoader.AddName(Rubis, "Bloc de Rubis");
          ModLoader.AddName(RubisGemme, "Rubis");  
		  ModLoader.AddName(RubisPoussiere, "Poussière de Rubis");
		  ModLoader.AddName(EmeraldPoussiere, "Poussière de Diamand");
		  ModLoader.AddName(OnyxPoussiere, "Poussière d'Onyx");
		  ModLoader.AddName(OnyxGemme, "Onyx");
          
     	  ModLoader.AddRecipe(new ItemStack(EmeraudePoussiere, 1), new Object[]{ "##", "##", Character.valueOf('#'), EmeraudeGemme});
          ModLoader.AddRecipe(new ItemStack(RubisPoussiere, 1), new Object[]{ "##", "##", Character.valueOf('#'), RubisGemme});
		  ModLoader.AddRecipe(new ItemStack(EmeraldPoussiere, 1),new Object[]{ "##", "##", Character.valueOf('#'), Item.diamond});
		  ModLoader.AddRecipe(new ItemStack(OnyxPoussiere, 1),new Object[]{ "#XY", Character.valueOf('#'), EmeraudePoussiere, Character.valueOf('X'), RubisPoussiere, Character.valueOf('Y'), EmeraldPoussiere});
		  
		  ModLoader.AddSmelting(OnyxPoussiere.shiftedIndex, new ItemStack(OnyxGemme, 1));
		  
		}
	   
	   public String Version()
       {
          return "1.5";
       }
	
       public void GenerateSurface(World worldObj, Random rand, int k, int l)
	   {
	      for(int i4 = 0; i4 < 3; i4++)
          {
              int j7 = k + rand.nextInt(16);
              int k10 = rand.nextInt(16);
              int i15 = l + rand.nextInt(16);
              (new WorldGenMinable(Emeraude.blockID, 7)).generate(worldObj, rand, j7, k10, i15);
          }
	   	
	
      
	   
	      for(int i4 = 0; i4 < 2; i4++)
          {
              int j7 = k + rand.nextInt(16);
              int k10 = rand.nextInt(16);
              int i15 = l + rand.nextInt(16);
              (new WorldGenMinable(Rubis.blockID, 7)).generate(worldObj, rand, j7, k10, i15);
          }
	   }	
     	
		public static final Block Emeraude;
        public static final Item EmeraudeGemme;
		public static final Item EmeraudePoussiere;
		public static final Block Rubis;
		public static final Item RubisGemme;
		public static final Item RubisPoussiere;
		public static final Item EmeraldPoussiere;
		public static final Item OnyxPoussiere;
		public static final Item OnyxGemme;
		public static final Item EmeraudePickaxe;
		
		static 
        {
           Emeraude = new BlockEmeraude(99, 0).setHardness(2.0F).setResistance(10.0F).setBlockName("Emeraude");
		   EmeraudeGemme= new Item(1000).setItemName("EmeraudeGemme");
		   EmeraudePoussiere = new Item(1002).setItemName("EmeraudePoussiere");
		   EmeraudePickaxe = (new ItemEmeraudePickaxe(2000, EnumToolMod.EMERAUDE)).setIconCoord(0, 0).setItemName("EmeraudePickaxe");
		   Rubis = new BlockRubis(100,0).setHardness(2.0F).setResistance(10.0F).setBlockName("Rubis");
		   RubisGemme= new Item(1001).setItemName("RubisGemme");
		   RubisPoussiere = new Item (1003).setItemName("RubisPoussiere");
	       EmeraldPoussiere = new Item (1004).setItemName("EmeraldPoussiere");
           OnyxPoussiere = new Item (1005).setItemName("OnyxPoussiere");
           OnyxGemme = new Item (1006).setItemName("OnyxGemme");
           		   
		} 
		

	}
(oui il n'y a pas que des emeraude dans ce mod j'ai des rubis et plusieurs trucs)


EnumToolMod.java
Code:
    package net.minecraft.src;

    public enum EnumToolMod 
	{

       EMERAUDE("EMERAUDE", 5, 3, 831, 12F, 3);
       
        private EnumToolMod(String s, int i, int j, int k, float f, int l)
        {
            harvestLevel = j;
            maxUses = k;
            efficiencyOnProperMaterial = f;
            damageVsEntity = l;
        }

        public int getMaxUses()
        {
            return maxUses;
        }

        public float getEfficiencyOnProperMaterial()
        {
            return efficiencyOnProperMaterial;
        }

        public int getDamageVsEntity()
        {
            return damageVsEntity;
        }

        public int getHarvestLevel()
        {
            return harvestLevel;
        }
       
        private final int harvestLevel;
        private final int maxUses;
        private final float efficiencyOnProperMaterial;
        private final int damageVsEntity;
     
    }


ItemEmeraudePickaxe
Code:
package net.minecraft.src;
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) braces deadcode 


public class ItemEmeraudePickaxe extends ItemTool
{

    protected ItemEmeraudePickaxe(int i, EnumToolMod enumtoolmod)
    {
        super(i, 2, EnumToolMod, blocksEffectiveAgainst);
    }

    public boolean canHarvestBlock(Block block)
    {
        if(block == Block.obsidian)
        {
            return toolMaterial.getHarvestLevel() == 3;
        }
        if(block == Block.blockDiamond || block == Block.oreDiamond)
        {
            return toolMaterial.getHarvestLevel() >= 2;
        }
        if(block == Block.blockGold || block == Block.oreGold)
        {
            return toolMaterial.getHarvestLevel() >= 2;
        }
        if(block == Block.blockSteel || block == Block.oreIron)
        {
            return toolMaterial.getHarvestLevel() >= 1;
        }
        if(block == Block.blockLapis || block == Block.oreLapis)
        {
            return toolMaterial.getHarvestLevel() >= 1;
        }
        if(block == Block.oreRedstone || block == Block.oreRedstoneGlowing)
        {
            return toolMaterial.getHarvestLevel() >= 2;
        }
        if(block.blockMaterial == Material.rock)
        {
            return true;
        }
        return block.blockMaterial == Material.iron;
    }

    private static Block blocksEffectiveAgainst[];

    static 
    {
        blocksEffectiveAgainst = (new Block[] {
            Block.cobblestone, Block.stairDouble, Block.stairSingle, Block.stone, Block.sandStone, Block.cobblestoneMossy, Block.oreIron, Block.blockSteel, Block.oreCoal, Block.blockGold, 
            Block.oreGold, Block.oreDiamond, Block.blockDiamond, Block.ice, Block.netherrack, Block.oreLapis, Block.blockLapis
        });
    }
}


voila je comprend pas j'ai tout ce qui faut pour faire la pioche mais il me dis que il trouve pas la variable EnumToolMod ...