Pioche spéciale



  • Bonjour,
    J'essaye de créer une pioche spéciale en gros qui peu miné que la redstone pas autre chose.

    Code:

    public class PickaxeRed extends ItemPickaxe {
    
        protected PickaxeRed(ToolMaterial p_i45347_1_) {
    super(p_i45347_1_);
    // TODO Auto-generated constructor stub
    }
    
    private Block[] blocksEffective = new Block[]
                {
                    Blocks.redstone_ore, 
            };
    
            int harvest = 1;
    
    protected float efficiencyOnProperMaterial;
    
    public float func_150893_a(ItemStack par1ItemStack, Block par2Block)
    {
    for (int i = 0; i < blocksEffective.length; i++)
    {
        if (blocksEffective* == par2Block)
        {
            return efficiencyOnProperMaterial;
        }
    }
    
    return 0.0F;
    }
    

    Merci

    Ps: Mon problème: je peux rien cassé .


  • Correcteurs

    C'est pas pour faire chier mais ton code est mal organisé et tu pourrais renommer le p_ et les func_. Aussi la variable au milieu, c'est la première fois que je vois ça. ^^

    Sinon 2 sec je vais édit le message, je vais juste aller voir sur Éclipse.



  • D'acc ^^


  • Administrateurs

    public float func_150893_a(ItemStack stack, Block block)
    {
    return block == Blocks.redstone_ore || block == Blocks.lit_redstone_ore ? this.efficiencyOnProperMaterial : 1.0F;
    }
    
    @Override
       public float getDigSpeed(ItemStack stack, Block block, int meta)
    {
    return func_150893_a(stack, block);
    }
    
       public boolean func_150897_b(Block block)
       {
           return block == Blocks.redstone_ore || block == Blocks.lit_redstone_ore;
       }
    


  • Alors avec se code:

    public class PickaxeRed extends ItemPickaxe {
    
        protected PickaxeRed(ToolMaterial p_i45347_1_) {
    super(p_i45347_1_);
    // TODO Auto-generated constructor stub
    }
    
    private Block[] blocksEffectiveAgainst = new Block[]
                {
                    Blocks.redstone_ore, 
            };
    
            int harvest = 1;
    
    protected float efficiencyOnProperMaterial;
    
    public float func_150893_a(ItemStack stack, Block block)
    {
       return block == Blocks.redstone_ore || block == Blocks.lit_redstone_ore ? this.efficiencyOnProperMaterial : 1.0F;
    }
    
    @Override
    public float getDigSpeed(ItemStack stack, Block block, int meta)
    {
       return func_150893_a(stack, block);
    }
    
    public boolean func_150897_b(Block block)
    {
        return block == Blocks.redstone_ore || block == Blocks.lit_redstone_ore;
    }
    
    }
    
    

    La je peu casser tout sauf le minerais de redstone.


  • Administrateurs

    private Block[] blocksEffectiveAgainst = new Block[]
    {
    Blocks.redstone_ore,
    };
    
    int harvest = 1;
    
    protected float efficiencyOnProperMaterial;
    

    Ne devrait pas être là.



  • La je peu tous casser ( Terre et redstone )


  • Administrateurs

    Tu as bien gardé les 3 autres fonctions ?



  • Nan je les est viré ^^ je dois les mettre ??


  • Administrateurs

    Bha oui …



  • je les met ou ??

    code:

    public class PickaxeRed extends ItemPickaxe {
    
    protected PickaxeRed(ToolMaterial pioche) {
    super(pioche);
    }
    
    public float func_150893_a(ItemStack stack, Block block)
    {
       return block == Blocks.redstone_ore || block == Blocks.lit_redstone_ore ? this.efficiencyOnProperMaterial : 1.0F;
    
    }
    
    private Block[] blocksEffectiveAgainst = new Block[]
            {
                Blocks.redstone_ore, 
        };
    
        int harvest = 1;
    
    protected float efficiencyOnProperMaterial;
    
    @Override
    public float getDigSpeed(ItemStack stack, Block block, int meta)
    {
       return func_150893_a(stack, block);
    
    }
    
    public boolean func_150897_b(Block block)
    {
        return block == Blocks.redstone_ore || block == Blocks.lit_redstone_ore;
    
    }
    
    }
    
    

  • Administrateurs

    Ta classe devrait être comme ça :

    public class PickaxeRed extends ItemPickaxe
    {
    protected PickaxeRed(ToolMaterial p_i45347_1_)
    {
    super(p_i45347_1_);
    }
    
    public float func_150893_a(ItemStack stack, Block block)
    {
    return block == Blocks.redstone_ore || block == Blocks.lit_redstone_ore ? this.efficiencyOnProperMaterial : 1.0F;
    }
    
    @Override
    public float getDigSpeed(ItemStack stack, Block block, int meta)
    {
    return func_150893_a(stack, block);
    }
    
    public boolean func_150897_b(Block block)
    {
    return block == Blocks.redstone_ore || block == Blocks.lit_redstone_ore;
    }
    }
    


  • Avec ton code je peux tout cassé la redstone et la grass .


  • Administrateurs

    J'ai testé ce code, seule la redstone se casse à une vitesse normal. Le reste c'est plus lent. Si tu veux complètement empêcher de casser les autres blocs remplace le 1.0F par -1.0F ou 0.0F dans func_150893_a



  • Ouaip merci c'est bon