Перейти к основному содержимому

Пакеты контента EternalTD

Теперь EternalTD отслеживает официальный контент через набор конфигурации content_packages и показывает эти пакеты через /etd setup.

Категории пакетов

Текущий код использует три категории пакетов:

  • FREE
  • PREMIUM
  • RESOURCES

В меню настройки они сейчас отображаются так:

  • Free Content
  • Premium Packs
  • Resources

Проверенные готовые пакеты

Это готовые пакеты, которые сейчас определены в репозитории:

ПакетКатегорияПереключается в /etd setupОтслеживаемые ресурсы
EternalTD Hub WorldFreeNoПапка мира сервера etd_spawn
EternalTD TutorialFreeYestutorial.yml, tutorial_waves.yml, tutorial_npc.yml, etd_tutorial
Towers of the Grassy LandsFreeYes5 файлов уровней, 1 файл волн, 1 файл NPC, 5 миров
Towers from the DepthsPremiumYes5 файлов уровней, 1 файл волн, 1 файл NPC, 5 миров
Towers of the Rising SunPremiumYes5 файлов уровней, 1 файл волн, 1 файл NPC, 5 миров
EternalTD Custom ModelsResourcesNoТолько 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 мог отслеживать факт загрузки общего ресурсного пакета.