setHarvestLevel n'excède pas les "3"



  • Rebonjour,
    Ayant pas mal codé entre hier et cet après-midi, me voilà de nouveau face à un conflit que je ne sais déceler :
    Il repose sur la définition du level qui détermine la puissance minimale de l'outil pour récolter le bloc.

    setHarvestLevel("outil",Level)
    

    Lorsque que l'on choisit un niveau entre 0 et 3, la cohésion entre ce bloc personnalisé et les outils de différents types (or, fer, diamant) est correcte et respectée. Néanmoins, ayant produit un Material de niveau 4, en changeant la méthode comme ci-dessous :

    setHarvestLevel("pickaxe",4)
    

    La pioche de niveau 4 n'a aucune influence sur mon bloc, il en est de même pour les pioches de niveaux supérieurs ou inférieurs.
    Ayant testé mon bloc avec un setHarvestLevel("pickaxe",3) auparavant, il est bien fonctionnel.

    Voici la class entière de mon bloc :

    
    package wwrp.Blocks;
    
    import java.util.Random;
    import cpw.mods.fml.common.registry.GameRegistry;
    import wwrp.Common.Modwwrp;
    import net.minecraft.block.material.Material;
    import net.minecraft.block.Block;
    import net.minecraft.item.Item;
    
    public class BlockwwrpetincellimeOre extends Block
    {
    public BlockwwrpetincellimeOre()
    {
    super(Material.rock);
    setHarvestLevel("pickaxe",4);
    this.setHardness(4.5F);
    this.setStepSound(Block.soundTypeStone);
    }
    
    @Override
    public int quantityDropped(int meta, int fortune, Random random)
    {
    return quantityDroppedWithBonus(fortune, random);
    }
    
    //If the block's drop is an item.
    public Item getItemDropped(int metadata, Random random, int fortune) {
    return wwrp.Common.Modwwrp.etincellime;
    }
    
    public int quantityDropped(Random random)
    {
    return 1;
    }
    
    public int quantityDroppedWithBonus(int fortune, Random random)
    {
    if (fortune > 0)
    {
    int j = random.nextInt(fortune + 2) - 1;
    
    if (j < 0)
    {
    j = 0;
    }
    
    return quantityDropped(random) * (j + 1);
    }
    else
    {
    return quantityDropped(random);
    }
    }
    }
    }
    

    Y a-t-il quelque chose que l'on doit modifier (dans un autre fichier) ?
    Mille merci d'avance pour votre aide,
    Nox'.


  • Administrateurs

    Il me semble que ça ne monte pas au dessus de 3, je vais faire des vérifications de mon côté.



  • On ne peut pas créer de matériel au dessus du diamant alors ?
    Il me semblait que l'on pouvait le faire sur les précédentes versions… 😕
    Il y a pas d'alternative à ce problème ? Qu'est-ce qui le limite en soit ?



  • Je pense qu'il y a une méthode quelque part pour ajouter un harvest level 😉


  • Administrateurs

    Je viens de tester dans le constructeur d'un bloc :

    this.setHarvestLevel("pickaxe", 4);
    

    et dans celui d'une pioche :

    this.setHarvestLevel("pickaxe", 4);
    

    Mon bloc ne peut que être droppé avec cette pioche, et ma pioche peut aussi dropper du diam, de l'obsi, etc …

    Donc ça fonctionne très bien, je ne sais pas où tu t'es loupé.



  • Mon dieu je suis bête …
    Je viens de trouver mon erreur. En fait en copiant une série de tools j'ai raccordé ma pioche à ma class qui définit les épées personnalisées...
    Je cherchais simplement le problème au mauvais endroit.
    Effectivement avec un tag pickaxe ça marche, il n'y a pas de bug sur l'harvest.
    Problème résolu, enfin même si du coup il y avait pas de problème.
    Désolé pour le temps perdu. Merci de m'avoir aidé. 😊