(Dieser Artikel gehört zu einer Reihe von Kommentaren)
Erster Artikel: Einführung Vorheriger Artikel: Basisdatei Nächster Artikel: Block 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).
\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".
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 ...)
Starte das Spiel und überprüfe. 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.
[Ü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]
Recommended Posts