Files
airdef/docs/ENGINE.md
T
chexit 4761ae7d70 Pin the standalone Horizon fork as a submodule (#104)
Replace patch-stack reconstruction with safe pinned initialization and legacy checkout migration; use an engine-local packer and write artifact identities.

Co-Authored-By: Codex <noreply@openai.com>
2026-11-02 01:09:21 +03:00

3.4 KiB
Raw Blame History

Закреплённый движок AirDef

Движок: https://gitea.maoniao.team/chexit/horizon-airdef, ветка airdef. AirDef хранит точный SHA как gitlink horizon/; новый push движка не меняет старые сборки мода. История upstream и всех 44 прежних патчей сохранена в форке. Старые patch-файлы и HORIZON_COMMIT доступны в истории AirDef и больше не являются вторым источником движка. Baseline описан в AIRDEF-FORK.md.

Windows: обновление и запуск

git fetch origin
git switch kimi-work
git pull --ff-only
python tools/airdef.py all
python tools/airdef.py play

Первое клонирование: git clone --recurse-submodules https://gitea.maoniao.team/chexit/airdef.git. Обычный clone тоже поддерживается: python tools/airdef.py fork или команда submodule выше. all инициализирует зависимость сам, включая переход со старой папки horizon/. Для чистого checkout можно отдельно выполнить git submodule update --init --recursive. Нужны Git, Python и Rust согласно INSTALL.md. Сборка клиента и мод устанавливаются в обычное место; ресурсы Minecraft готовятся отдельно по INSTALL.md.

При первом переходе со старого отдельного clone horizon/ скрипт сохраняет его Git-историю и ветки, переводит в сабмодуль и получает закреплённый SHA. Если там есть изменения при другом SHA, обновление останавливается с объяснением: сначала закоммитьте/сохраните свои изменения. Скрипт не выполняет reset --hard или clean. Чистый checkout может остаться detached HEAD — это нормально для зависимости.

Изменение движка

  1. В horizon/ создать рабочую ветку от закреплённого SHA. Проверить изменение и push в репозиторий движка.
  2. В AirDef выполнить git add horizon, проверить мод/игру, коммитить обновление gitlink отдельно.
  3. Push AirDef выполняется после движка. Не коммитить Git URL с токенами.
  4. Для возврата выбрать прежний commit AirDef и выполнить git submodule update --init --recursive.

Упаковщик собирается repo-local в .horizon-cache/packer/<engine-identity>/, глобальный cargo-horizon-mod не используется. Изменения tracked-исходников движка входят в identity. Рядом с airdef.hmod записывается build-identity.json: SHA AirDef, pin/identity движка, SHA256 WIT и артефакта. API-диагностика остаётся в python tools/airdef.py check. Нативные тесты не заменяют отдельную игровую проверку графики, звука и экспорта.