ObserverLib — это библиотека-мод, позволяющая надёжно отслеживать изменения блоков в потенциально большой области с минимальным влиянием на производительность.
Библиотека доступна для публичного использования и ориентирована на интеграцию с модом Astral Sorcery начиная с версии 1.13+.
Основная функциональность позволяет регистрировать Observer для определённой области. Observer получает данные об изменениях в наблюдаемой зоне и самостоятельно определяет, нарушают ли эти изменения его состояние (например, целостность структуры).
Для проверки актуальности состояния необходимо запросить ChangeSubscriber в соответствующей позиции и вызвать метод проверки валидности.
Преимущество перед ручной проверкой областей:
- Автоматическая обработка изменений даже в незагруженных чанках
- Отсутствие необходимости принудительной загрузки чанков
- Эффективное отслеживание через систему событий (см. метод notifyChange)
Пример реализации проверки структур доступен в исходном коде. Алгоритм отслеживает только несоответствия ожидаемым шаблонам, минимизируя вычислительные затраты.
Интеграция через Maven: https://maven.hellfiredev.net/hellfirepvp/observerlib/observerlib/