Пальмові дерева
Цей документ слугує загальною інструкцією для додавання нових пальмових дерев до TFG. А також містить пояснення щодо функцій класів.
Компоненти з боку ядра моду
Крок 1) Елемент Enum
Щоб додати нові пальмові дерева, спочатку знайди перелік FruitTreeType та додай новий елемент enum за зразком
java
PalmTrees(int defaultGrowthDays, int foliageColorIndex, int minGrowthSize, int maxGrowthSize, int minDrops, int maxDrops, Integer clusterAges, String clusterModelShape, boolean specialCluster, boolean specialFruit, Lifecycle[] stages)- defaultGrowthDays: Усталена кількість днів, необхідна для росту.
- foliageColorIndex: Встановлює колір листя на основі індексу рослинності TFC (foliage.png). Діапазон від 0 до 255
- minGrowthSize: Задає мінімальну кількість блоків стовбура 2-ї стадії для кінцевого розміру вирослого дерева. (5 блоків завжди будуть розміщуватися нижче)
- maxGrowthSize: Задає максимальну кількість блоків стовбура 2-ї стадії для кінцевого розміру вирослого дерева. (5 блоків завжди будуть розміщуватися нижче)
- minDrops: Задає мінімальну кількість плодів, які скидає дозріле дерево.
- maxDrops: Задає максимальну кількість плодів, які скидає дозріле дерево.
- clusterAges: Задає кількість стадій дозрівання для блока кластера.
- clusterModelShape: Задає форму моделі для блока кластера. Доступні варіанти: "square", "bundle", "double_bundle", "string"
- specialCluster: Якщо встановлено false, блок кластера автоматично створиться через {@link PalmClusterBlock}. Якщо значення true, необхідно створити окремий клас.
- specialFruit: Якщо встановлено false, фрукт автоматично створиться як звичайний предмет. Якщо значення true, необхідно створити окремий клас.
- stages: Стадії життєвого циклу. Єдиними допустимими стадіями є {@link Lifecycle#FRUITING} та {@link Lifecycle#DORMANT}.
Крок 2) Ресурси
- Додай текстури в теку ассетів palm_tree asset folder for blocks, items, та food.
- Додай моделі для palm heads, хоча ти можеш просто використати іншу крону пальми як батьківську модель. Але все ж рекомендується використовувати унікальні текстури для всіх видів пальм, щоб їх можна було хоч якось відрізнити одну від одної.
- Необов'язково: додай climate range jsons до data теки щоб бути здатним протестувати дерева в dev середовищі. Але кліматичні дані все одно мають бути додані на стороні модпаку для послідовності.
Крок 3) runData
Запусти runData, щоб згенерувати json-файли станів блоків, моделей та луту.
Core Mod Side
Крок 1) Кліматичний діапазон та фрукти
- Додай дані climate range до константи. Обов'язково вкажи, в якому вимірі можна знайти це дерево. Це ні на що не впливає, окрім інформації в підказці до саджанця.
- Поки ти перебуваєш в цьому файлі, додай також fruit info до константи фруктів. Це згенерує джеми, а також інші пов'язані з фруктами предмети та рецепти.
Крок 2) Дані про їжу
- Додай food data для продуктів твоїх пальмових дерев.
Крок 3) Ресурси
- Увімкни GEN_JAM_MODELS та запусти модпак один раз, щоб згенерувати моделі джемів, якщо ти додаєш нові види фруктів. Не забудь знову змінити це булеве значення на false перед тим, як робити пуш коду.
- Додай jam textures.
- Додай planter textures для горщика для бонсаю у теплицях модифікації FirmaLife. Це просто 3x3 квадрат у верхньому лівому кутку 16x16 текстури.
Крок 4) Генерація світу
- Створи файли структур .nbt для кожного розміру висоти для кожного дерева і помісти ці структури в теку data folder. Пам'ятай заповнити порожні простори структурними пустотами за винятком областей, де ростуть пальмові кластери; залиш їх як повітря. Ти також можеш просто скопіювати вже наявну структуру пальми та використати nbt-редактор, щоб замінити блоки на блоки від твоєї власної пальми.
- Створи configured feature jsons для кожного дерева.
- Створи placed feature jsons для кожного дерева.
- Додай biome tags для розміщених особливостей щоб увімкнути генерацію.
Крок 5) Польовий довідник
- Додай записи в польовий довідник для кожного нового дерева у відповідну категорію виміру.
Необов’язковий*)
- Інформація про горщики теплиці Firmalife генерується автоматично за допомогою переліку (enum). Але ти можеш змінити регістр тут.
- Рецепти для електричної теплиці генеруються автоматично на основі enum. Але ти можеш змінити регістр тут.
Сторона репозиторію інструментів
- Додай мовні рядки для всього ось так