[Java] Créons un Minecraft Mod 1.16.1 [Ajouter un élément]

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

Premier article: Introduction Article précédent: Fichier de base Article suivant: Ajouter un bloc

Ajouter un item

Tout d'abord, nous ajouterons des éléments de base. J'ai changé un peu le style d'écriture en à 1.14.4 (cela ne signifie pas que la méthode d'implémentation a changé en raison de la mise à jour de la version).

Enregistrement d'article

\src\main\java\jp\koteko\liveinwater\
   ├ item
   │   └ Items.java
   └ LiveInWater.java

Items.java


package jp.koteko.liveinwater.item;

import jp.koteko.liveinwater.LiveInWater;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;

import java.util.ArrayList;
import java.util.List;

@Mod.EventBusSubscriber(modid = LiveInWater.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class Items {
    public static List<Item> itemList = new ArrayList<Item>();
    public static final Item WATERTREE_ROOT = register("watertree_root", new Item((new Item.Properties()).group(ItemGroup.MATERIALS)));

    private static Item register(String key, Item itemIn) {
        itemList.add(itemIn);
        return itemIn.setRegistryName(LiveInWater.MOD_ID, key);
    }

    @SubscribeEvent
    public static void registerItems(RegistryEvent.Register<Item> event) {
        for (Item item : itemList) {
            event.getRegistry().register(item);
        }
    }
}

Ajoutez des éléments à List en même temps que la déclaration / initialisation, et register () tous les éléments de la liste avec une boucle for.

Chaque annotation a les fonctions suivantes.

EventBusSubscriber

Annotate a class which will be subscribed to an Event Bus at mod construction time. Defaults to subscribing the current modid to the MinecraftForge.EVENT_BUS on both sides.

Il semble que cette classe soit enregistrée dans EventBus de forge.

SubscribeEvent

Annotation to subscribe a method to an Event This annotation can only be applied to single parameter methods, where the single parameter is a subclass of Event. Use IEventBus.register(Object) to submit either an Object instance or a Class to the event bus for scanning to generate callback IEventListener wrappers. The Event Bus system generates an ASM wrapper that dispatches to the marked method.

Il semble nécessaire d'indiquer que la méthode est un gestionnaire.

Si vous les joignez, l'article sera automatiquement enregistré.

S'il ne s'agit que d'un élément non fonctionnel, il s'agit simplement d'une instance de la classe ʻItem. Comme son nom l'indique, ʻItem.Properties est une classe qui gère les propriétés des éléments, et il y a beaucoup d'autres choses que vous pouvez faire en plus du group () qui définit l'onglet créatif, alors jetons un coup d'œil à la classe appropriée le cas échéant. Aussi, pour une instance de la classe ʻItem, utilisez setRegistryName () pour déterminer le nom interne lors de l'enregistrement d'un élément dans forge. Utilisez MOD_ID pour l'espace de noms et définissez-le MOD_ID: ITEM_NAME`.

paramètres des ressources

L'ajout d'éléments est terminé dans la section précédente, mais l'affichage dans le jeu n'est pas prêt tel quel, nous allons donc les définir. Placez les fichiers sous resources.

\src\main\resources
   └ assets
      └ liveinwater
         ├ lang
         │  └ en_us.json
         │  └ ja_jp.json
         ├ models
         │  └ item
         │     └ watertree_root.json
         └ textures
            └ item
               └ watertree_root.png

(Légèrement renommé à partir de l'article 1.14.4.)

lang\en_us.json


{
  "item.liveinwater.watertree_root": "WaterTree Root"
}

lang\ja_jp.json


{
  "item.liveinwater.watertree_root": "Racine d'arbre d'eau"
}

"" item. [MOD_ID]. [ITEM_NAME] ":" Afficher le nom "`

watertree_root.json


{
  "parent": "item/generated",
  "textures": {
    "layer0": "liveinwater:item/watertree_root"
  }
}

Pour les éléments simples, parent est ʻitem / generated MOD_ID: [chemin du fichier de texture]`

textures\item\watertree_root.png La formule semble être 16 * 16 png, alors créez une texture et placez-la en conséquence. (Il est très difficile de l'écrire vous-même ...)

Vérification

Démarrez le jeu et vérifiez. キャプチャ.PNG Puisque ʻItemGroup.MATERIALS` est spécifié, il y a plus d'éléments dans cet onglet s'il est créatif. La texture est correctement reflétée et le nom défini dans le fichier de langue s'affiche.

référence

[Présentation du système d'événements Minecraft Forge - Minecraft Modding Wiki](https://mcmodding.jp/modding/index.php/Minecraft_Forge_Event%E3%82%B7%E3%82%B9%E3%83%86%E3%83% A0% E6% A6% 82% E8% A6% 81) [Java] Créons un Minecraft Mod 1.14.4 [1. Ajouter des éléments] Création de Minecraft 1.14.4 Forge Mod Partie 3 [Ajout d'éléments non fonctionnels]

Article suivant

Ajouter un bloc

Recommended Posts

[Java] Créons un Minecraft Mod 1.16.1 [Ajouter un élément]
[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.14.4 [6. Ajouter une recette]
[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 [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
[Java] Créer un filtre
[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
Minecraft Modding [1.12] Comment attacher un rendu spécial pour Item
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
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
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
[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é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
Essayez de créer un babillard en Java
Comment créer des pages pour le tableau "kaminari"
Créer un onglet personnalisé avec SwiftUI 2.0
[Java] Créer une collection avec un seul élément