Архитектура
Категории, квесты и меню независимы друг от друга и связываются только через записи.
Данные
- Quest Category задаёт идентичность группы: название, заголовок, значок, родителя, порядок и критерии.
- Quest Assignment помещает квесты официального расширения Quest в категорию. Несколько назначений могут указывать на одну категорию, и их переопределения объединяются.
- Quest Lore добавляет описание (lore) для каждого статуса одного квеста, в категории или везде.
Меню
Когда игрок открывает меню, расширение находит его Category Menu, переписывает каждый маркер в раскладках simple указанного Open GUI в пронумерованный маркер, разбирает раскладку через движок GUI, а затем заменяет каждый видимый маркер n-м квестом или категорией. Маркеры без содержимого отображаются как пустые слоты, кроме TRACKED_QUEST_SLOT, который сохраняет настроенный вами предмет как своё пустое состояние. Кнопка сортировки рисуется как фиксированная накладка в позиции SORT_SLOT.
Отслеживание и восстановление
Идентификаторы отслеживаемых квестов хранятся для каждого игрока, по порядку, в артефакте отслеживания. Официальное расширение Quest по-прежнему показывает на HUD один основной квест; Quest Codex хранит остальные и восстанавливает последний после повторного подключения. Восстановление работает так же для прерванного диалога или кинематики: краткоживущий снимок сохраняется асинхронно и восстанавливается через несколько тиков после возвращения игрока. Кинематика перезапускает свою страницу и переходит к сохранённому кадру.
Маршрутные точки
Маршрутная точка определяет свою цель (фиксированная позиция, цель квеста, отслеживаемая цель или сущность), затем собирает слои текста, блока и маяка, существующие только в пакетах. Слои HUD следуют за камерой игрока; слои цели располагаются на самой цели. В мире не сохраняется ни одной сущности отображения.
Интеграции
- BlueMap — записи BlueMap Icon при запуске BlueMap превращаются в маркеры набора маркеров
Quests. Маркеры статичны: они не следуют за прогрессом игрока. - Advancements — записи Advancement Definition при запуске записываются как датапак и выдаются действием.