Пакеты контента EternalTD
Теперь EternalTD отслеживает официальный контент через набор конфигурации content_packages и показывает эти пакеты через /etd setup.
Категории пакетов
Текущий код использует три категории пакетов:
FREEPREMIUMRESOURCES
В меню настройки они сейчас отображаются так:
Free ContentPremium PacksResources
Проверенные готовые пакеты
Это готовые пакеты, которые сейчас определены в репозитории:
| Пакет | Категория | Переключается в /etd setup | Отслеживаемые ресурсы |
|---|---|---|---|
EternalTD Hub World | Free | No | Папка мира сервера etd_spawn |
EternalTD Tutorial | Free | Yes | tutorial.yml, tutorial_waves.yml, tutorial_npc.yml, etd_tutorial |
Towers of the Grassy Lands | Free | Yes | 5 файлов уровней, 1 файл волн, 1 файл NPC, 5 миров |
Towers from the Depths | Premium | Yes | 5 файлов уровней, 1 файл волн, 1 файл NPC, 5 миров |
Towers of the Rising Sun | Premium | Yes | 5 файлов уровней, 1 файл волн, 1 файл NPC, 5 миров |
EternalTD Custom Models | Resources | No | Только marker file, плюс импортированный контент FreeMinecraftModels при наличии |
Жизненный цикл пакета
Браузер пакетов сейчас различает следующие состояния:
- не загружено
- не установлено
- установлено
- частично установлено
- устарело и может быть обновлено
- устарело, но недоступно
- требуется доступ
Это состояние вычисляется по отслеживаемым ресурсам на диске, флагам isEnabled внутри отслеживаемых конфигурационных файлов, а также по проверкам доступа и обновлений Nightbreak.
Переключаемые и общие пакеты
Переключаемые пакеты работают через изменение isEnabled внутри отслеживаемых конфигурационных файлов в следующих путях:
plugins/EternalTD/levels/
plugins/EternalTD/waves/
plugins/EternalTD/npcs/
Общие пакеты работают не как обычные переключатели:
- мир-хаб считается общим установленным контентом.
- пакет пользовательских моделей считается общим ресурсным контентом.
Для таких пакетов меню настройки предлагает удалить файлы вручную, а затем выполнить /etd reload.
Массовые операции
Сейчас реализованы две массовые операции:
/etd downloadall/etd updatecontent
Обе команды:
- требуют привязанный токен Nightbreak
- загружают файлы в
plugins/EternalTD/imports - пропускают недоступные или уже актуальные пакеты
- автоматически перезагружают EternalTD после успешных загрузок
Практические заметки
- Проверки пакетов дедуплицируют по Nightbreak slug перед массовой загрузкой или обновлением.
- Интерфейс setup обновляет сведения о контенте и доступе по cooldown, а не обращается к Nightbreak при каждом открытии.
- Пакет пользовательских моделей записывает marker в
plugins/EternalTD/content_markers/, чтобы EternalTD мог отслеживать факт загрузки общего ресурсного пакета.