00671e7c0d
Клиент запрашивал звук, движок его принимал и запускал, а на выходе было тихо. Причина оказалась не в коде игры. Minecraft 1.12.2 не умеет читать ассеты по индексу и объектному хранилищу. Он ждёт обычное дерево: <assetsDir>/minecraft/<путь>. А лаунчер хранит ассеты по-современному — indexes/1.12.json со ссылками на objects/<aa>/<sha1>. Мы передавали лаунчеру корень этого хранилища как --assetsDir. Игре это не выглядит как поломка: язык и текстуры берутся из самого jar, поэтому клиент выглядит полностью рабочим. Но звуки с 1.7.3 лежат только в ассетах, и их просто не было на диске. Движок поднимался, play() вызывался, ogg не находился, а paulscode на это молчит. - materialize_assets.py разворачивает дерево из индекса и хранилища, жёсткими ссылками где возможно, и идемпотентен - run-game.ps1 материализует ассеты перед запуском и указывает клиенту на развёрнутое дерево; --assetIndex больше не нужен - проверено: 1305 объектов, из них 1085 ogg, sounds.json на месте, ошибок загрузки в логе нет Заодно убрана временная диагностика звука и движения, добавленная ради поиска причины: она доказала, что запрос и воспроизведение доходят до OpenAL, и свою задачу выполнила. Полный prepare-game.ps1 после этого проходит целиком: 112 патчей, FORK COMPILES CLEAN, 3268 классов, RsxDebug в дереве не осталось.