[Java] Créons un Minecraft Mod 1.14.4 [6. Ajouter une recette]

(Cet article fait partie d'une série d'articles de commentaires)

Premier article: Introduction Article précédent: 5. Add Armor Article suivant: 7. Ajouter des progrès

Ajouter une recette

À propos, 1. Ajouter un élément, 2. Ajouter un bloc, 4 Ajouter des outils, 5. Ajouter une armure et ajouter divers éléments. Cependant, il n'y a pas encore de recette pour les fabriquer. Cette fois, nous ajouterons quelques recettes de modèles. Dans la version 1.14.4, l'ajout de recettes ne nécessite pas d'écriture de code et peut être ajouté en fonction de json.

Recette standard

Par exemple, ajoutons une recette d'épée.

\src\main\resources
   ├ assets
   └ data
      └ example_mod
         ├ loot_tables
         └ recipes
            └ example_sword.json

Créez un dossier \ src \ main \ resources \ data \ recettes et placez-y le fichier de recette.

example_sword.json


{
  "type": "minecraft:crafting_shaped",
  "pattern": [
    "#",
    "#",
    "X"
  ],
  "key": {
    "#": {
      "item": "example_mod:example_ingot"
    },
    "X": {
      "item": "minecraft:stick"
    }
  },
  "result": {
    "item": "example_mod:example_sword"
  }
}

Vous pouvez créer une recette standard en donnant minecraft: crafting_shaped à type. Une recette standard est une recette artisanale dans laquelle la disposition des ingrédients est fixée. Utilisez key pour déterminer l'élément correspondant à n'importe quel jeton (# et X ici, mais tout va bien), et utilisez ce jeton pour placer le motif sous la forme d'une matrice de 3 x 3 ou moins. Decider. Spécifiez l'objet obtenu à la suite de la fabrication dans "result". キャプチャ.PNG Vous pouvez maintenant fabriquer des épées. Dans cet exemple, une seule ligne est utilisée pour organiser les matériaux, vous pouvez donc le créer verticalement à n'importe quelle position, comme indiqué sur la figure. Puisque "rien" n'est indiqué par un blanc demi-largeur, vous pouvez explicitement faire ce qui suit, mais même dans ce cas, il semble que vous puissiez également créer une colonne verticale à gauche ou à droite.

python


  "pattern": [
    " # ",
    " # ",
    " X "
  ]

Recette atypique

Ensuite, ajoutons une recette irrégulière qui ne spécifie pas la disposition des matériaux. À titre d'exemple, c'est un peu inapproprié, mais considérons une recette qui décompose deux blocs en 18 lingots.

\src\main\resources
   ├ assets
   └ data
      └ example_mod
         ├ loot_tables
         └ recipes
            └ example_ingot.json

example_ingot.json


{
  "type": "minecraft:crafting_shapeless",
  "ingredients": [
    {
      "item": "example_mod:example_block"
    },
    {
      "item": "example_mod:example_block"
    }
  ],
  "result": {
    "item": "example_mod:example_ingot",
    "count": 18
  }
}

Vous pouvez créer une recette atypique en donnant minecraft: crafting_shapeless à type. ʻIngredientsest un tableau de matériaux, qui répertorie les objets utilisés pour l'artisanat. «result» est le même que la recette standard. Vous pouvez spécifier le nombre aveccount` (il a été omis dans la section précédente car il s'agit de 1 par défaut). キャプチャ.PNG Le lingot a été obtenu de n'importe quel arrangement.

Recette de fusion

Ensuite, ajoutez une recette pour raffiner avec un kamado. Par exemple, raffinons les diamants pour obtenir des lingots.

\src\main\resources
   ├ assets
   └ data
      └ example_mod
         ├ loot_tables
         └ recipes
            └ furnace
               └ example_ingot.json

(Il semble que tous les fichiers sous recettes seront enregistrés, donc peut-être que la structure du dossier et le nom du fichier sont gratuits.)

example_ingot.json


{
  "type": "minecraft:smelting",
  "ingredient": {
    "item": "minecraft:diamond"
  },
  "result": {
    "item": "example_mod:example_ingot"
  },
  "experience": 3.0,
  "cookingtime": 200
}

Ajoutez une recette de raffinage en spécifiant minecraft: smelting pour type. ʻIngredient(** Remarque car il s'agit d'un seul élément **) est le matériau, etresult` est l'élément raffiné. «Expérience» est la valeur d'expérience obtenue par raffinage, et «temps de cuisson» est le temps de raffinage. À propos, le fer de la vanille est de 0,7 et 200 respectivement. キャプチャ.PNG J'ai pu l'affiner.

développement

Q. N'est-ce pas dans le livre de recettes? ** A. Une fois fait, il sera listé. Si vous voulez le mettre en premier, vous devez modifier la partie liée aux avancées **, mais je ne l'ai pas encore appris, j'espère donc l'ajouter plus tard.


Q. Je souhaite fabriquer le même article à partir de plusieurs matériaux ** A. Il existe trois solutions. ** ** La première consiste simplement à créer autant de fichiers json pour la recette. Non recommandé. La seconde consiste à transmettre plusieurs éléments à «key» ou «ingradient ».

La position X est le bâton ou le chêne_Soit en bois


{
  "type": "minecraft:crafting_shaped",
  "pattern": [
    "#",
    "#",
    "X"
  ],
  "key": {
    "#": {
      "item": "example_mod:example_ingot"
    },
    "X": [
      {
        "item": "minecraft:stick"
      },
      {
        "item": "minecraft:oak_wood"
      }
    ]
  },
  "result": {
    "item": "example_mod:example_sword"
  }
}

Le matériau est le diamant ou l'or_Soit lingot


{
  "type": "minecraft:smelting",
  "ingredient": [
    {
      "item": "minecraft:diamond"
    },
    {
      "item": "minecraft:gold_ingot"
    }
  ],
  "result": {
    "item": "example_mod:example_ingot"
  },
  "experience": 3.0,
  "cookingtime": 200
}

(Je ne savais pas si cette méthode pouvait être utilisée pour les recettes «informes». Cela ne semble pas fonctionner?)

La troisième méthode consiste à utiliser «tag». Le charbon de bois vanille, par exemple, fabrique un article de toutes sortes de bûches. Le code est indiqué ci-dessous.

charcoal.json


{
  "type": "minecraft:smelting",
  "ingredient": {
    "tag": "minecraft:logs"
  },
  "result": "minecraft:charcoal",
  "experience": 0.15,
  "cookingtime": 200
}

Cette balise est déclarée dans net \ minecraft \ tags \ BlockTags.java. Bien sûr, vous pouvez définir vous-même de nouvelles étiquettes, c'est donc une bonne idée de créer une étiquette qui résume les matériaux alternatifs et de l'utiliser pour définir votre recette.


Q. Je souhaite modifier la recette de vanille ** A. Facile à ajouter. Difficile de changer. ** ** En d'autres termes, il est facile d'ajouter C → B à A → B craft, mais il est difficile de passer à A → D craft. La première coexiste avec la vanille si vous ajoutez simplement une nouvelle recette, mais la seconde semble donner la priorité à la vanille même si vous ajoutez une recette faite du même matériau. Par conséquent, il semble qu'il soit nécessaire de revenir au code pour enregistrer la recette.


Q.Je veux faire une recette de brassage Probablement, il n'est pas possible d'ajouter la base json ci-dessus pour les recettes de brassage. (Référence)

référence

Recipes - Forge Documentation Minecraft 1.14.4 Forge Mod Creation Part 9 [Add Recipe]

Article suivant

7. Ajouter une progression

Recommended Posts

[Java] Créons un Minecraft Mod 1.14.4 [6. Ajouter une recette]
[Java] Créons un Minecraft Mod 1.14.4 [4. Ajouter des outils]
[Java] Créons un Minecraft Mod 1.14.4 [5. Ajouter une armure]
[Java] Créons un Minecraft Mod 1.14.4 [7. Add progress]
[Java] Créons un Minecraft Mod 1.16.1 [Ajouter un élément]
[Java] Créons un Minecraft Mod 1.14.4 [1. Ajouter un élément]
[Java] Créons un Minecraft Mod 1.14.4 [2. Ajouter un bloc]
[Java] Créons un Minecraft Mod 1.16.1 [Ajouter un bloc]
[Java] Créons un Minecraft Mod 1.14.4 [3. Ajouter un onglet de création]
[Java] Créons un Minecraft Mod 1.14.4 [Introduction]
[Java] Créons un Minecraft Mod 1.16.1 [Introduction]
[Java] Créons un Minecraft Mod 1.14.4 [99. Mod output]
[Java] Créons un Minecraft Mod 1.16.1 [Ajouter et générer des arbres]
[Java] Créons un Minecraft Mod 1.14.4 [9. Ajouter et générer des arbres]
[Java] Créons un Minecraft Mod 1.14.4 [8. Ajouter et générer du minerai]
[Java] Créons un Minecraft Mod 1.14.4 [0. Fichier de base]
[Java] Créons un Minecraft Mod 1.14.4 [édition supplémentaire]
[Java] Créons un Minecraft Mod 1.16.1 [Fichier de base]
Créons un environnement de développement Java (mise à jour)
Créons un processus chronométré avec la minuterie de Java! !!
Créons un framework Web ultra-simple avec Java
[Bases de Java] Créons un triangle avec une instruction for
Créer une méthode java [Memo] [java11]
[Java] Créer un fichier temporaire
Comment créer une image de conteneur légère pour les applications Java
[Java twig] Créer un combinateur d'analyseur pour l'analyse syntaxique de descente récursive
Création d'un MOB à l'aide du plug-in Minecraft Java Mythicmobs | Préparation 1
Créons une application TODO en Java 4 Implémentation de la fonction de publication
Comment signer Minecraft MOD
Créons une application TODO en Java 6 Implémentation de la fonction de recherche
Créons une application TODO en Java 8 Implémentation des fonctions d'édition
Minecraft1.14.4 Mémorandum de développement MOD 1 [Recette originale]
Créer un projet Java à l'aide d'Eclipse
Créons une application TODO avec Java 1 Brève explication de MVC
Créons une application TODO en Java 5 Changer l'affichage de TODO
Créer un serveur fluentd pour les tests
Installons Docker sur Windows 10 et créons un environnement de vérification pour CentOS 8!
[Java twig] Créer un combinateur d'analyseur pour une analyse de syntaxe descendante récursive (également prendre des notes)
Allons-y avec Watson Assistant (anciennement Conversation) ⑤ Créez un chatbot avec Watson + Java + Slack
Créer un environnement de développement d'applications Web Java avec Docker pour Mac Part2
[Java] Créer et appliquer un masque des diapositives
Comment créer un référentiel Maven pour 2020
Créer une application TODO dans Java 7 Créer un en-tête
[Java] Créons une bibliothèque d'accès à la base de données!
Faisons une application de calculatrice avec Java ~ Créez une zone d'affichage dans la fenêtre
Java (add2)
Java (ajouter)
Créons une bibliothèque d'opérations de stockage de fichiers polyvalente (?) En faisant abstraction du stockage / acquisition de fichiers avec Java
[Azure] J'ai essayé de créer une application Java pour la création d'applications Web gratuites - [Débutant]
J'ai créé un outil Diff pour les fichiers Java
Comment créer une base de données H2 n'importe où
Une histoire sur la prise en charge de Java 11 pour les services Web
Créer un CSR avec des informations étendues en Java
Créez un tableau d'affichage simple avec Java + MySQL
Créons une API REST à l'aide de WildFly Swarm.
[Windows] [IntelliJ] [Java] [Tomcat] Créer un environnement pour Tomcat 9 avec IntelliJ
[Java] Créez quelque chose comme une API de recherche de produits