vinvin40220

Ramasseur de champignons
18 Mars 2018
2
0
12
17
Bonjour, je cherche comment faire pour changer le temps avant qu'une plante arrive a maturité et je cherche aussi comment faire pour changer le drop de ma plante.
Parce que en mettant le System de drop des plantes par défault celui là:
Code:
    protected Item func_149866_i()
    {
        return (nom de la graine);
    }

    protected Item func_149865_P()
    {
        return (nom du fruit);
    }

la plante me drop beaucoup trop de graine
J'ai donc essayer avec getItemDroped voila a quoi sa ressemble:

Code:
       protected Item func_149866_i()
        {
            return null;
        }
      
      
       public static  Item getFirstItem()
        {
            return ItemMod.coal_seed;
        }
      
       public static Item getSecondeItem()
       {
           getFirstItem();
           return Items.coal;
       }


       @Override
       public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)

       {
           return p_149650_1_ == 7 ? getSecondeItem(): getFirstItem();
       }

donc pour en venir au problème:

si ma plante est pas au stage 7 sa return ma coal_seed (rien d'anormal)
si elle est au stage 7 sa me return getSecondeItem donc mon coal et ma coal_seed or la sa me return juste mon coal

Bref si je suis pas claire faite le moi remarquer

PS: j'ai juste quelque base en java alors soyer claire svp
 
Dernière édition par un modérateur:

ShE3py

Développeur en autodidacte
Support
26 Septembre 2015
2 519
58
359
247
20
Mìlhüsa
Bonsoir,

Les cultures ne croissent pas en un temps fixé, mais lors d'un random tick ; en moyenne toute les 68 secondes (médiane: 48 secondes).

Java:
@Override
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) {
    return p_149650_1_ == 7 ? getSecondeItem(): getFirstItem();
}

Bon déjà, là pourquoi tu ne renommes pas p_149650_1_ en un nom plus signifiant, tel que stage ?

Et bon vu l'erreur qui suit, je vais juste m'assurer que tu comprennes bien ce que fais l'opérateur ternaire :
Java:
@Override
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) {
    if(p_149650_1_ == 7)
        return getSecondeItem();
    else
        return getFirstItem();
}

Et sinon, l'erreur est dû à cause du fait que ce n'est pas en appelant getFirstItem qu'il ajoute l'item quelque part.
Java:
public static Item getFirstItem() {
    // les constantes (static final) doivent être écrites en majuscules
    // ItemMod.COAL_SEED
    // Et met le nom du mod dans la classe ;
    // MyModItems.COAL_SEED
    return ItemMod.coal_seed;
}

// deuxième ne prend pas de 'e' en anglais
public static Item getSecondeItem() {
    getFirstItem();
    // la fonction renvoit une variable,
    // tu ne la récupères pas, rien ne se passe
   
    return Items.coal;
}

// et préfère renommer tes fonctions getSeeds et getFruit,
// parce que pourquoi l'un est le premier et pourquoi l'autre le second,
// seul Dieu le sait


Cordialement,
ShE3py.

P.S.: Le support pour les mods en 1.7 a été largement abandonné, quitte à faire un mod pourquoi ne pas le faire en 1.12/1.15 ?
 
  • J'aime
Reactions: robin4002

vinvin40220

Ramasseur de champignons
18 Mars 2018
2
0
12
17
merci de ton aide et pk pas le faire en 1.12/1.15 parce que quand j'ai comment il y avait peu de tuto pour ces versions mais bon je pense qu'il est temps de changer parce que la 1.7 commence à dater