Thx de l'info @Arti_Chaud
Je laisse quand même un exemple de .json ci-dessous.
Code (cpp):
{
"parent": "item/handheld",
"textures": {
"layer0": "items/stone_sword"
},
"overrides": [
{ "predicate": { "damaged": 1, "damage": 0.2}, "model": "item/stone_sword_damaged_1"},
{ "predicate": { "damaged": 1, "damage": 0.4}, "model": "item/stone_sword_damaged_2"},
{ "predicate": { "damaged": 1, "damage": 0.6}, "model": "item/stone_sword_damaged_3"},
{ "predicate": { "damaged": 1, "damage": 0.8}, "model": "item/stone_sword_damaged_4"}
]
}
Ici nous modifions donc l'épée en pierre, le fichier s'appelle stone_sword.json et se trouve dans le dossier models>item (il y a aussi block pour les blocks mais je ne connais pas de moyen de faire varier la texture).
La fonction overrides permet selon certaines paramètres d'utiliser un model différent, ici la durabilité.
Le damage défini le pourcentage de durabilité à partir duquel le changement de model est observé (0.8 étant donc lorsque l'item n'est plus qu'à 20% de durabilité) et model donne le nom du fichier de modèle à utiliser.
Cela ne veut pas dire qu'il faut nécessairement des models 3D, un model peut utiliser une simple texture se trouvant dans le pack, comme dans cet exemple :
Code (cpp):
{
"parent": "item/handheld",
"textures": {
"layer0": "items/stone_sword_damaged_1"
}
}
Ceci serait mon model "stone_sword_damaged_1.json" dans models>item, qui permet d'appliquer la texture éponyme se trouvant dans textures>items.
(Ah et pour ceux qui se posent la question, le "damaged" de la fonction overrides permet de choisir si l'item doit avoir perdu de la durabilité ou pas, ce que ça implique : pour une valeur de 1 cela affecte un objet normal mais pour une valeur de 0 cela peut affecter un objet avec le tag unbreakable, ce qui permet de donner une quasi infinité de textures pour un objet avec beaucoup de durabilité)