Скачать Luminance Block Entities - Fabric — Minecraft Моды — MetaMods

Luminance Block Entities - Fabric

Активный

Установок

0

Последнее обновление

4 года назад
Клиент
Библиотеки
Технологические

Luminance Block Entities - Fabric

Этот API предоставляет возможность блочным сущностям (таким как сундуки, печи, раздатчики и другие) излучать свет в мире Minecraft, подобно блокам светокамня или красным лампам. Однако в отличие от них, данная утилита полностью обходит использование состояний блоков. Это делает её идеальным решением для модов, которые хотят добавить новые блоки с множеством состояний, способные также излучать свет, или для проектов, требующих тонкого контроля над освещением. РАБОТАЕТ ТОЛЬКО С FABRIC

Для игроков

Если другой мод требует этот API как зависимость, просто скачайте его здесь и поместите в папку mods вместе с остальными модами.

Для разработчиков

Настройка

Чтобы использовать этот API в своих модах, скачайте JAR-файл и разместите его в среде разработки Fabric. В файле build.gradle добавьте:

flatDir {
    dirs 'путь/к/папке/с/JAR' // Укажите путь к папке с JAR-файлом
}

в раздел repositories. Затем добавьте:

modImplementation "com.nonumberstudios.luminance_block_entities:luminance_block_entities:1.0.0" // Замените версию на актуальную

в раздел dependencies.

Использование

После настройки вы можете создавать блочные сущности как обычно через Fabric. Вместо наследования от BlockEntity ваш класс должен наследоваться от LuminanceBlockEntity, предоставляемого API. Этот класс требует параметр LuminanceBehavior - перечисление, определяющее, как использовать освещение от блочной сущности или состояния блока:

  • IGNORE: использовать только освещение от блочной сущности, игнорируя состояние блока. Вероятно, это то, что вам нужно.
  • FALLBACK: использовать освещение от блочной сущности, если оно есть. Если освещение равно нулю, использовать состояние блока как запасной вариант.
  • PRIORITY: использовать освещение от состояния блока, если оно есть. Если освещение равно нулю, использовать блочную сущность как запасной вариант.

Далее вам нужно реализовать метод getLuminance. Вы можете сделать в нём всё, что захотите. Чтобы обновить освещение мира согласно возвращаемому значению getLuminance, вызовите метод updateLuminance, определённый в LuminanceBlockEntity. Вызывайте его только если освещение действительно изменилось! Эта операция довольно ресурсоёмкая.

В процессе инициализации мода вы можете вызвать LuminanceBlockEntitiesMod.initializeExample(), чтобы загрузить пример блочной сущности в игру. Это простой блок (без текстур и т.д.), который можно найти во вкладке "Разное". При установке он генерирует случайное значение освещения от 0 до 15 каждый тик и обновляет освещение мира соответственно (см. видео ниже). Теоретически, изменение состояния блока каждый тик в ванильном стиле было бы более затратным, но вы можете найти лучшие применения для этого API. Вы можете изучить класс GlowBlockEntity, чтобы увидеть реализацию.

Пример реализации:

Участники проекта
NoNumberMan

NoNumberMan

Создан: 9 фев 2022

ID: 37377