[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Element hinzufügen]

(Dieser Artikel gehört zu einer Reihe von Kommentaren)

Erster Artikel: Einführung Vorheriger Artikel: Basisdatei Nächster Artikel: Block hinzufügen

Artikel hinzufügen

Zunächst werden wir grundlegende Elemente hinzufügen. Ich habe den Schreibstil ein wenig in [um 1.14.4] geändert (https://qiita.com/koteko/items/76910dbf9eb126bdfdf9) (dies bedeutet nicht, dass sich die Implementierungsmethode aufgrund des Versions-Upgrades geändert hat).

Artikelregistrierung

\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);
        }
    }
}

Fügen Sie Elemente zur Liste gleichzeitig mit der Deklaration / Initialisierung hinzu und registrieren Sie () alle Elemente in der Liste mit einer for-Schleife.

Jede Anmerkung hat die folgenden Funktionen.

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.

Es scheint, dass diese Klasse in EventBus of Forge registriert ist.

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.

Es scheint notwendig anzugeben, dass die Methode ein Handler ist.

Wenn Sie diese anhängen, wird der Artikel automatisch registriert.

Wenn es sich nur um ein nicht funktionsfähiges Element handelt, handelt es sich lediglich um eine Instanz der Klasse "Element". Wie der Name schon sagt, ist "Item.Properties" eine Klasse, die die Eigenschaften von Elementen verwaltet. Neben "group ()" können Sie noch viele andere Dinge tun, die die Registerkarte "Creative" festlegen. Schauen wir uns also die entsprechende Klasse an. Verwenden Sie für eine Instanz der Klasse "Item" außerdem "setRegistryName ()", um den internen Namen bei der Registrierung eines Elements in forge zu bestimmen. Verwenden Sie MOD_ID für den Namespace und machen Sie ihn zu "MOD_ID: ITEM_NAME".

Ressourceneinstellungen

Das Hinzufügen von Gegenständen wurde im vorherigen Abschnitt abgeschlossen, aber die Anzeige im Spiel ist noch nicht fertig, so dass wir diese einstellen werden. Platzieren Sie die Dateien unter "Ressourcen".

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

(Leicht umbenannt aus dem Artikel 1.14.4.)

lang\en_us.json


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

lang\ja_jp.json


{
  "item.liveinwater.watertree_root": "Wasserbaumwurzel"
}

" item. [MOD_ID]. [ITEM_NAME] ":" Anzeigename "

watertree_root.json


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

Bei einfachen Elementen ist "Eltern" "Element / generiert" MOD_ID: [Texturdateipfad]

textures\item\watertree_root.png Die Formel scheint 16 * 16 png zu sein. Erstellen Sie also eine Textur und platzieren Sie sie entsprechend. (Es ist sehr schwierig, es selbst zu schreiben ...)

Bestätigung

Starte das Spiel und überprüfe. キャプチャ.PNG Da "ItemGroup.MATERIALS" angegeben ist, befinden sich auf dieser Registerkarte weitere Elemente, wenn sie kreativ sind. Die Textur wird korrekt wiedergegeben und der in der Sprachdatei festgelegte Name wird angezeigt.

Referenz

[Übersicht über das Minecraft Forge-Ereignissystem --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] Erstellen wir einen Minecraft Mod 1.14.4 [1. Elemente hinzufügen] Minecraft 1.14.4 Forge Mod Teil 3 erstellen [Nicht funktionierende Elemente hinzufügen]

Nächster Artikel

Block hinzufügen

Recommended Posts

[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Element hinzufügen]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [4. Tools hinzufügen]
[Java] Lass uns einen Minecraft Mod 1.14.4 erstellen [5. Rüstung hinzufügen]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [7. Fortschritt hinzufügen]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [6. Rezept hinzufügen]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [1. Element hinzufügen]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [2. Fügen Sie einen Block hinzu]
[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Block hinzufügen]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [Einführung]
[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Einführung]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [99. Mod-Ausgabe]
[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Bäume hinzufügen und generieren]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [9. Bäume hinzufügen und generieren]
[Java] Lass uns einen Minecraft Mod 1.14.4 erstellen [8. Erz hinzufügen und erzeugen]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [0. Basisdatei]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [Extra Edition]
[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Basisdatei]
Lassen Sie uns eine Java-Entwicklungsumgebung erstellen (Aktualisierung)
Lassen Sie uns mit Javas Timer einen zeitgesteuerten Prozess erstellen! !!
Lassen Sie uns mit Java ein supereinfaches Webframework erstellen
[Java] Erstellen Sie einen Filter
[Java-Grundlagen] Lassen Sie uns ein Dreieck mit einer for-Anweisung erstellen
Erstellen Sie eine Java-Methode [Memo] [java11]
[Java] Erstellen Sie eine temporäre Datei
So erstellen Sie ein leichtes Container-Image für Java-Apps
[Java-Zweig] Erstellen Sie einen Parser-Kombinator für die rekursive Abstiegssyntaxanalyse 2
Minecraft Modding [1.12] So fügen Sie einen speziellen Render für Item hinzu
Erstellen eines MOB mit dem Minecraft Java Mythicmobs-Plug-In | Vorbereitung 1
Lassen Sie uns eine TODO-App in Java 4 erstellen. Implementierung der Buchungsfunktion
Lassen Sie uns eine TODO-App in Java 6 erstellen. Implementierung der Suchfunktion
Lassen Sie uns eine TODO-App in Java 8 erstellen. Implementierung von Bearbeitungsfunktionen
Erstellen Sie ein Java-Projekt mit Eclipse
Erstellen wir eine TODO-Anwendung mit Java 1 Kurze Erläuterung von MVC
Lassen Sie uns eine TODO-App in Java 5 erstellen. Schalten Sie die Anzeige von TODO um
Erstellen Sie einen fließenden Server zum Testen
[Java-Zweig] Erstellen Sie einen Parser-Kombinator für die rekursive absteigende Syntaxanalyse (machen Sie sich auch Notizen).
Los geht's mit Watson Assistant (ehemals Conversation) ⑤ Erstellen Sie einen Chatbot mit Watson + Java + Slack
Erstellen Sie mit Docker für Mac Teil2 eine Entwicklungsumgebung für Java-Webanwendungen
[Java] Erstellen und Anwenden eines Folienmasters
So erstellen Sie ein Maven-Repository für 2020
Erstellen Sie eine TODO-App in Java 7 Create Header
[Java] Erstellen wir eine DB-Zugriffsbibliothek!
Erstellen wir eine Taschenrechner-App mit Java ~ Erstellen Sie einen Anzeigebereich im Fenster
Java (add2)
Java (hinzufügen)
Erstellen wir eine vielseitige Dateispeicher (?) - Operationsbibliothek, indem wir die Dateispeicherung / -erfassung mit Java abstrahieren
[Azure] Ich habe versucht, eine Java-App für die Erstellung von kostenlosen Web-Apps zu erstellen. [Anfänger]
Ich habe ein Diff-Tool für Java-Dateien erstellt
So erstellen Sie überall eine H2-Datenbank
Eine Geschichte über die Java 11-Unterstützung für Webdienste
Erstellen Sie eine CSR mit erweiterten Informationen in Java
Erstellen wir eine REST-API mit WildFly Swarm.
[Windows] [IntelliJ] [Java] [Tomcat] Erstellen Sie mit IntelliJ eine Umgebung für Tomcat 9
[Java] Erstellen Sie so etwas wie eine Produktsuch-API
Versuchen Sie, ein Bulletin Board in Java zu erstellen
So erstellen Sie Pagenationen für das "Kaminari" -Array
Erstellen Sie mit SwiftUI 2.0 eine benutzerdefinierte Registerkartenansicht
[Java] Erstellen Sie eine Sammlung mit nur einem Element