Files
GTNHLib/README_uk.md

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