# AirDef: запуск с нуля (Windows и macOS) AirDef работает на своей сборке (форке) Horizon: в ней есть API 3D-моделей, звуков и шейдеров, которого нет в обычном Horizon. Сама игра и её ресурсы берутся из твоего Minecraft — без лицензионного Minecraft Java 26.3 ничего не заработает. ## 1. Общее для обоих способов 1. Купленный **Minecraft: Java Edition** (версия 26.3). 2. **Лаунчер Horizon** — https://playhorizon.dev (раздел Install). Установи его, поставь в нём последнюю версию и **один раз запусти игру**: лаунчер подготовит ресурсы игры из твоего Minecraft. Форк AirDef берёт их оттуда. Где что лежит (обычно ничего трогать не нужно): | | Windows | macOS | |---|---|---| | Папка игры (миры, моды, настройки) | `%APPDATA%\horizon` | `~/Library/Application Support/horizon` | | Ресурсы из лаунчера | `%APPDATA%\horizon-launcher\versions\…\.local\horizon-client\26.3` | `~/Library/Application Support/horizon-launcher/versions/…/.local/horizon-client/26.3` | ## 2а. Готовая сборка из релиза (проще) В репозитории → **Releases**. Большие релизы `vX.Y.Z` содержат готовую игру для Windows, `airdef-windows-x86_64.zip`: она собирается на сервере только по тегу версии (`git tag v0.3.0`, `git push origin v0.3.0`). Сборки `build-N` выходят на каждый коммит, в них только `airdef.hmod`, сам мод (один для всех ОС). Архив Linux собирается вручную: Actions → **game** → Run workflow с тегом `build-N`; macOS: Actions → **desktop** (нужен раннер с меткой `macos-latest`). Нет архива для твоей ОС — способ 2б: игра соберётся у тебя, а мод можно взять из релиза или собрать там же. **Windows:** распакуй zip куда угодно и запусти `play.bat`. Он положит мод в папку игры, включит его и запустит игру. Конкретный мир: `play.bat --world "Имя мира"` (в командной строке, из папки архива). Если SmartScreen ругается — «Подробнее → Выполнить в любом случае» (сборка не подписана). **macOS:** распакуй архив, в Терминале: ```sh cd ~/Downloads/airdef-macos-arm64 ./play.sh # или ./play.sh --world "Имя мира" ``` Скрипт сам снимает карантин с файлов. Если macOS всё же блокирует запуск — «Системные настройки → Конфиденциальность и безопасность → Всё равно открыть». ## 2б. Сборка из исходников Нужно: **Git**, **Python 3**, **Rust** (https://rustup.rs). Сборка игры занимает ~5–15 минут и ~5 ГБ на диске. ### Windows 1. Поставь **Git** (https://git-scm.com), **Python 3** (https://python.org, галочка «Add to PATH»), **Visual Studio Build Tools** с компонентом «Разработка классических приложений на C++» (https://visualstudio.microsoft.com/visual-cpp-build-tools/), затем **Rust** (`rustup-init.exe` с rustup.rs). 2. В PowerShell: ```powershell rustup target add wasm32-unknown-unknown git clone https://gitea.maoniao.team/chexit/airdef.git cd airdef py tools\airdef.py all # форк Horizon + сборка игры + мод + установка мода py tools\airdef.py play # запуск; мир: py tools\airdef.py play --world "Имя мира" ``` ### macOS 1. Инструменты разработчика: `xcode-select --install`, затем Rust: `curl -sSf https://sh.rustup.rs | sh` (перезапусти Терминал). 2. В Терминале: ```sh rustup target add wasm32-unknown-unknown git clone https://gitea.maoniao.team/chexit/airdef.git cd airdef python3 tools/airdef.py all python3 tools/airdef.py play # или: python3 tools/airdef.py play --world "Имя мира" ``` Клон по HTTPS не требует ключа. Если у тебя есть SSH-ключ в Gitea, можно и так: `git clone ssh://git@gitea.maoniao.team:2222/chexit/airdef.git`. Шаги по отдельности: `fork` (инициализировать закреплённый сабмодуль `horizon/`), `game` (собрать игру), `mod` (собрать `airdef.hmod`), `install` (положить мод в папку игры и включить), `play`. `check` говорит прямо, совпадают ли форк, упаковщик мода, уровень API мода с игрой и ресурсы, и подсказывает, что запустить, если нет (`python3 tools/airdef.py check`; Windows: `py tools\airdef.py check`). Версия Rust фиксирована в `rust-toolchain.toml`: rustup сам поставит её и цель wasm32 при первой сборке. ## 3. В игре - Обновление из исходников: `git pull`, затем снова `all` (Windows: `py tools\airdef.py all`). Форк и упаковщик мода пересоберутся сами, если патчи изменились. - Windows: нужна видеокарта с Vulkan. Экспорт фильмов (`/airdef replay export`) требует `ffmpeg` в PATH или `HORIZON_FFMPEG`. - Шейдеры уровня шейдерпаков: `/airdef shader hd`. Для слабой видеокарты перед запуском: `$env:HORIZON_HD_SCALE="0.67"` (PowerShell). - Преграды и эхо для звука: меню мода → «Акустика». - Создай мир с читами (или включи их через «Открыть для сети»): мод выдаёт пульты и взрывы командами. - `/airdef give` — пульты, **N** — командный пункт (роли ПВО), **K** — монитор комплекса, `/airdef wave mix 20` — налёт. Подробнее — README. - Мод в списке «Настройки → Моды» должен быть включён (скрипты включают его сами). ## Если что-то не так - **«Не найдены ресурсы игры»** — запусти Horizon из лаунчера хотя бы раз; либо укажи путь вручную: `HORIZON_RESOURCES=…/.local/horizon-client/26.3` (Windows: `set HORIZON_RESOURCES=…`). - **Мод в списке, но красный: «made for a newer Horizon»** — игра запущена из лаунчера (обычный Horizon), а нужен форк: запускай через `play.bat` / `play.sh` / `airdef.py play`. - **Нет звука или моделей после обновления мода** — перезапусти игру: ресурсы мода грузятся при старте. - **Тормозит** — `/airdef shader off` (эффекты) и `/airdef damage off` (разрушения).