Генерація зачарувань
ПЕРЕДУМОВИ
Спершу переконайтеся, що ви виконали процес налаштування datagen.
Налаштування
Перед реалізацією генератора створіть пакет enchantment в основному вихідному наборі та додайте до нього клас ModEnchantments. Потім додайте метод key до цього нового класу.
java
No lines matched.1
Використовуйте цей метод, щоб створити ResourceKey для свого зачарування.
java
No lines matched.1
Тепер ми готові додати генератор. У пакеті генерації даних створіть клас, який розширює FabricDynamicRegistryProvider. До цього щойно створеного класу додайте конструктор, який відповідає super, і реалізуйте методи configure і getName.
java
No lines matched.1
Потім додайте допоміжний метод register до новоствореного класу.
java
No lines matched.1
Тепер додайте метод bootstrap. Тут ми будемо реєструвати зачарування, які хочемо додати до гри.
java
No lines matched.1
У вашій DataGeneratorEntrypoint перевизначте метод buildRegistry і зареєструйте наш початковий метод.
java
No lines matched.1
Нарешті переконайтеся, що ваш новий генератор зареєстровано в методі onInitializeDataGenerator.
java
No lines matched.1
Створення зачарування
Щоб створити визначення для нашого спеціального зачарування, ми використаємо метод register у нашому класі генератора.
Зареєструйте своє зачарування в методі bootstrap генератора, використовуючи зачарування, зареєстроване в ModEnchantments.
У цьому прикладі ми будемо використовувати ефект зачарування, створений у власних ефектах зачарування, але ви також можете використовувати стандартні ефекти зачарування.
java
No lines matched.1
Тепер просто запустіть генерацію даних, і ваше нове зачарування стане доступним у грі!
Умови ефекту
Більшість типів ефектів зачарування є умовними. Додаючи ці ефекти, можна передати умови виклику withEffect.
INFO
Щоб отримати огляд доступних типів умов та їх використання, перегляньте клас Enchantments.
java
No lines matched.1
Кілька ефектів
withEffect можна об'єднати, щоб додати кілька ефектів зачарування до одного зачарування. Однак цей метод вимагає від вас вказати умови ефекту для кожного ефекту.
Щоб натомість поділитися визначеними умовами та цілями між кількома ефектами, можна використати AllOf, щоб об’єднати їх в один ефект.
java
No lines matched.1
Зауважте, що спосіб використання залежить від типу ефекту, який додається. Наприклад, EnchantmentValueEffect вимагає натомість AnyOf.valueEffects. Різні типи ефектів все ще потребують додаткових викликів withEffect.
Стіл зачарування
Хоча ми вказали вагу зачарування (або ймовірність) у нашому визначенні зачарування, воно не показуватиметься в столі зачарувань усталено. Щоб нашими зачаруванням могли торгувати селяни та з’являтися в столі зачарування, нам потрібно додати їх до теґу non_treasure.
Для цього ми можемо створити постачальник теґів. Створіть клас, який розширює FabricTagProvider<Enchantment> в пакеті datagen. Потім запровадьте конструктор із Registries.ENCHANTMENT як параметр registryKey до super і створіть метод addTags.
java
No lines matched.1
Тепер ми можемо додати наше зачарування до EnchantmentTags.NON_TREASURE, викликавши конструктор із методу addTags.
java
No lines matched.1
Прокляття
Прокляття також реалізуються за допомогою теґів. Ми можемо використати постачальник теґів із розділу стола зачарування.
У методі addTags просто додайте своє зачарування до теґу CURSE, щоб позначити його як прокляття.
java
No lines matched.1

