Recette sans schéma
Revenons à l’exemple du premier article. Ici, on transforme un bloc de quartz en quartz. La recette est simple : tout bloc de quartz placé dans l’établi sera transformé en quartz. Il s’agit donc d’une recette crafting_shapeless : crafting car il s’agit d’une recette pour l’établi et shapeless car aucun schéma ne doit être respecté. En ingrédient nous attendons un bloc de quartz et en résultat 4 quartz. Voici le contenu du fichier data/mangarmor/recipes/quartz_block-quartz.json :
{"type":"crafting_shapeless","ingredients":[{"item":"minecraft:quartz_block"}],"result":{"item":"minecraft:quartz","count":4}}
Recette avec schéma
Il est également possible de créer des recettes devant respecter des schémas précis. Dans cet exemple de fabrication d’étiquette, nous précisons que du papier doit être placé en bas à gauche et au centre de l’établi, et qu’une ficelle doit être placée en haut à droite. Dans la recette, le schéma est indiqué par un tableau contenant des lignes de trois caractères, chacun représentant une colonne. Par convention, nous utiliserons les caractères # et X pour indiquer les différents ingrédients. Ainsi, la première ligne de la recette (en haut) doit contenir du vide, du vide et une ficelle qu’on représentera par # ce qui donne [ #]. Pour les deux autres lignes, nous utiliserons le symbole X pour représenter le papier. Nous écrirons donc [ X ] et [X ].
Voici le code complet pour cette recette :
{"type":"crafting_shaped","pattern":[" #"," X ","X "],"key":{"#":{"item":"minecraft:string"},"X":{"item":"minecraft:paper"}},"result":{"item":"minecraft:name_tag"}}
Utilisation des tags
Ce commentaire laissé sous le premier article du blog est intéressant et me permet d’introduire l’utilisation des tags dans les recettes. En effet, dans le cas d’une recette pour transformer n’importe quelle laine en ficelle, nous ne ferons pas une recette par couleur de laine. Au lieu de cela, nous utiliserons le tag wool pour cibler toutes les variations de laine. La recette sera donc :
{"type":"crafting_shapeless","ingredients":[{"tag":"minecraft:wool"}],"result":{"item":"minecraft:string","count":4}}
Il existe de nombreux tags et de nouveaux sont régulièrement ajoutés. Pour les recettes de lits par exemple, on utilise le tag planks pour les planches de bois.
Autres recettes (four, ...)
Sur le serveur Discord Mang’Armor, Storyboard propose d’ajouter une recette de four pour transformer la chair putréfiée en cuir. Pour les recettes de cuisson dans un four, on utilisera le type smelting. Ici, pas de schéma mais un temps de cuisson. Si on regarde les recettes de lingot de fer, on comprend la structure des recettes de cuisson. Voici le contenu du fichier iron_ingot.json :
{"type":"minecraft:smelting","ingredient":{"item":"minecraft:iron_ore"},"result":"minecraft:iron_ingot","experience":0.6999999999999999555910790149937383830547332763671875,"cookingtime":200}
À noter qu’il existe aussi une version pour le haut fourneau qui réduit le temps de cuisson :
{"type":"minecraft:blasting","ingredient":{"item":"minecraft:iron_ore"},"result":"minecraft:iron_ingot","experience":0.6999999999999999555910790149937383830547332763671875,"cookingtime":100}
Nous pouvons également choisir l’expérience obtenue. Je décide de mettre autant d’expérience que pour la cuisson d’un steak : 0,35. Voici donc la recette complète. Pour respecter les normes de nommage du jeu nous enregistrons la recette dans le fichier leather_from_rotten_flesh.json :
{"type":"minecraft:smelting","ingredient":{"item":"minecraft:rotten_flesh"},"result":"minecraft:leather","experience":0.34999999999999997779553950749686919152736663818359375,"cookingtime":200}
Téléchargement
Le datapack de ce tutoriel est disponible au téléchargement sur Dropbox. J’y ai ajouté des exemples de recettes utilisées lors de la saison 2 du serveur.