mirror of
https://github.com/GTNewHorizons/GTNHLib.git
synced 2026-10-25 20:22:29 +00:00
6.6 KiB
6.6 KiB
GTNHLib
🌐 Мови: English | Українська
Про бібліотеку
Спільна бібліотека коду для модів GTNH.
Можливості
Налаштування
- Визначення налаштувань за допомогою анотації
@Configдля класу. Кожне поле стає параметром конфігурації. - Встановлення значень за замовчуванням, діапазонів, коментарів та ключів локалізації за допомогою анотацій полів, таких як
@DefaultInt,@RangeIntта@Comment. - Бібліотека зчитує, записує та перевіряє файл
.cfgза вас. Жодних ручних викликівConfiguration. - Позначення полів анотацією
@Syncдля надсилання значень із сервера клієнтам під час підключення. - Створення графічного інтерфейсу налаштувань Forge прямо з анотацій.
Події
- Викликає
InventoryChangedEvent, коли змінюється загальна кількість предметів в інвентарі гравця. Підписуйтесь наItemAddedабоItemRemoved, які містять зміненийItemStack, дельту зі знаком, а такожinventoryCount— загальну кількість цього предмета у гравця після зміни. - Предмети зіставляються за типом і метаданими, ігноруючи NBT, тому сортування інвентарю не викликає жодних подій. Сканування виконується кожні кілька тактів (можна налаштувати).
- Викликає
PickBlockEvent, коли гравець клацає середньою кнопкою миші по блоку. - Позначте клас анотацією
@EventBusSubscriberдля автоматичної реєстрації його методів@SubscribeEvent. Виберіть сторону та етап завантаження в анотації. Ручна реєстрація не потрібна.
Предмети
ImmutableItemStackобгортає стек як доступний лише для читання, щоб запобігти випадковим змінам.ItemTransferпереміщує предмети міжItemSourceтаItemSinkза допомогою фільтрів-предикатів та обмежень кількості.- Перебирайте будь-який
IInventoryза допомогоюInventoryIterator, включно зі слотами, прив’язаними до сторін блока. - Інтерфейси джерела та приймача абстрагують вилучення та вставлення предметів, тому логіка переміщення працює з будь-яким типом інвентарю.
Рендеринг
- Рендеринг предметів з кількома накладеними текстурними шарами шляхом реалізації
ItemWithTextures. Реєструйте за допомогоюTexturedItemRenderer. CapturingTesselatorзахоплює квади рендерингу поза основним потоком для пакетної або асинхронної візуалізації.- Допоміжні класи для анімованих підказок та HUD-повідомлень над панеллю швидкого доступу.
Стан блоку
- Реєстрація власних властивостей блоку: boolean, int, enum, direction, axis та orientation.
- Пакування та зчитування значень властивостей із метаданих блоку, щоб на версії 1.7 блоки поводилися як сучасні стани блоків.
- Включає команду
blockstateдля перевірки стану блоку за координатами.
Команди
- Brigadier command API для сучасного парсингу, автодоповнення та виконання команд на версії 1.7.
- Реєстрація власних ігрових правил за допомогою
GameRuleRegistry. Бібліотека вбудовується у ванільну систему ігрових правил, щоб сповіщати ваші правила про зміни.
Команди гравців
- Система керування командами гравців з ролями, складом учасників та адміністративними командами.
- Реєстрація власних даних команди за допомогою
TeamDataRegistry. Бібліотека зберігає їх на диск і синхронізує з клієнтами.
Мережа
- Надсилання екранних повідомлень, повідомлень над панеллю швидкого доступу та дальності промальовування клієнтам.
- Синхронізація власних даних гравців.
Утиліти
- Бекпорт
MemoryUtilтаMemoryStackу стилі LWJGL3 в пакетіbytebuf. - 32- та 64-бітне хешування FNV-1a.
- Допоміжні класи для роботи з математикою, NBT, JSON, файлами, напрямками та відстанями.
- Типи кольорів для RGB та HSV.
- Ітератори та трансформації 3D-геометрії.
- Допоміжні класи для провайдерів можливостей.
- Синхронізовані прив’язки клавіш.
- Допоміжні класи для роботи з ASM та байт-кодом.
- Перевірка сумісності з модами (Baubles, FalseTweaks, NEI).
- Тіньове підключення FastUtil через https://github.com/GTNewHorizons/GTNHExtLib
Подяки
Налаштування: Оригінальний код від FalsePattern, що розповсюджується за ліцензією LGPL-3.0 у FalsePatternLib