Generierung von Verzauberungen
VORAUSSETZUNGEN
Stelle sicher, dass du den Prozess der Einrichtung des Datengenerators zuerst abgeschlossen hast.
Einrichtung
Bevor du den Generator implementierst, erstelle das Paket enchantment im Hauptquellensatz und füge die Klasse ModEnchantments zu diesem hinzu. Dann füge die Methode key zu dieser neuen Klasse hinzu.
java
No lines matched.1
Nutze diese Methode, um einen ResourceKey für deine Verzauberung zu erstellen.
java
No lines matched.1
Jetzt sind wir bereit, den Generator hinzuzufügen. Erstelle im Paket datagen eine Klasse, die von FabricDynamicRegistryProvider erbt. Füge in diese neu erstellte Klasse einen Konstruktor hinzu, der mit super übereinstimmt, und implementiere die Methoden configure und getName.
java
No lines matched.1
Füge dann eine Hilfsmethode register zu der neu erstellen Klasse hinzu.
java
No lines matched.1
Füge jetzt die Methode bootstrap hinzu. Hier werden wir die Verzauberungen registrieren, die wir zum Spiel hinzufügen wollen.
java
No lines matched.1
Überschreibe in deinem DataGeneratorEntrypoint die Methode buildRegistry und registriere unsere Methode bootstrap.
java
No lines matched.1
Stelle schließlich sicher, dass dein neuer Generator innerhalb der Methode onInitializeDataGenerator registriert ist.
java
No lines matched.1
Die Verzauberung erstellen
Um die Definition für unsere benutzerdefinierte Verzauberung zu erstellen, verwenden wir die Methode register in unserer Generator-Klasse.
Registriere deine Verzauberung in der Methode bootstrap des Generators unter Verwendung der in ModEnchantments registrierten Verzauberung.
In diesem Beispiel verwenden wir den in Benutzerdefinierte Verzauberungseffekte erstellten Verzauberungseffekt, aber du kannst auch die Vanilla Verzauberungseffekte verwenden.
java
No lines matched.1
Führen nun einfach die Datengenerierung aus, und deine neue Verzauberung wird im Spiel verfügbar sein!
Effektbedingungen
Die meisten Verzauberungseffekte sind bedingte Effekte. Beim Hinzufügen dieser Effekte ist es möglich, Bedingungen an den Aufruf von withEffect zu übergeben.
INFO
Eine Übersicht über die verfügbaren Zustandstypen und deren Verwendung findest du in der Klasse Enchantments (https://mcsrc.dev/#1/1.21.11_unobfuscated/net/minecraft/world/item/enchantment/Enchantments#L126).
java
No lines matched.1
Mehrere Effekte
withEffect kann verkettet werden, um einer einzelnen Verzauberung mehrere Verzauberungseffekte hinzuzufügen. Bei dieser Methode musst du jedoch die Effektbedingungen für jeden Effekt angeben.
Um stattdessen die definierten Bedingungen und Ziele über mehrere Effekte hinweg zu teilen, kann AllOf verwendet werden, um sie zu einem einzigen Effekt zusammenzufassen.
java
No lines matched.1
Beachte, dass die zu verwendende Methode vom Typ des hinzugefügten Effekts abhängt. Zum Beispiel benötigt EnchantmentValueEffect stattdessen AnyOf.valueEffects. Unterschiedliche Effekt-Typen erfordern weiterhin zusätzliche Aufrufe von withEffect.
Verzauberungstisch
Obwohl wir das Gewicht der Verzauberung (oder die Wahrscheinlichkeit) in unserer Verzauberungsdefinition angegeben haben, wird es standardmäßig nicht im Zaubertisch angezeigt. Damit unsere Verzauberung von Dorfbewohnern gehandelt werden kann und im Zaubertisch erscheint, müssen wir sie zum Tag non_treasure hinzufügen.
Dazu können wir einen Tag Provider erstellen. Erstelle in dem Paket datagen eine Klasse, die von FabricTagProvider<Enchantment> erbt. Implementiere dann den Konstruktor mit Registries.ENCHANTMENT als Parameter registryKey für super und erstelle die Methode addTags.
java
No lines matched.1
Wir können jetzt unsere Verzauberung zu EnchantmentTags.NON_TREASURE hinzufügen, indem wir den Builder aus der Methode addTags heraus aufrufen.
java
No lines matched.1
Flüche
Flüche werden auch mit Tags implementiert. Wir können den Tag Provider aus dem Abschnitt der Zaubertisch verwenden.
Füge in der Methode addTags einfach deine Verzauberung zum Tag CURSE hinzu, um sie als Fluch zu kennzeichnen.
java
No lines matched.1

