(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
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).
\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`.
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 ...)
Démarrez le jeu et vérifiez. 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.
[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]
Recommended Posts