docs: синхронизировать описание ассетов с реальностью (PNG из src/assets + фолбэк)

Ревью отметило устаревшие тексты после перехода на загрузку PNG:
- assets.ts: заголовок описывал «процедурно, без внешних файлов» — теперь PNG из
  src/assets/<ключ>.png с процедурным фолбэком.
- HOWTO §8: убран совет «заменить тело drawX() на TextureLoader» (уже сделано);
  актуальный путь — положить PNG с нужным именем в src/assets/.
- README/ARCHITECTURE/ASSET_BRIEF: статус «подключено», корректный механизм (рантайм-
  загрузка по пути, не импорт-бандлинг).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-18 16:15:36 +03:00
co-authored by Claude Opus 4.8
parent 35cb8de33a
commit 7dabfd4fff
5 changed files with 40 additions and 33 deletions
+13 -13
View File
@@ -1,11 +1,12 @@
# Бриф на ассеты — «Биндим Фигняшку»
Документ для генерации полного набора графики (через Claude/дизайн-ИИ или художника).
Ниже — **готовый промпт** (можно копировать целиком) и **таблица ассетов**, привязанная
к нашему пайплайну: каждый ассет ложится в `src/render/assets.ts` вместо текущего
процедурного рисунка (заменяем `drawX()` на загрузку PNG через `THREE.TextureLoader`).
Документ для генерации/догенерации графики (через Claude/дизайн-ИИ или художника).
Ниже — **готовый промпт** (можно копировать целиком) и **таблица ассетов**.
Следующим заходом мы подключим присланные PNG; пока в игре — простые процедурные плейсхолдеры.
> ✅ **Статус: набор уже подключён.** 21 PNG лежат в `src/assets/` и автоматически
> грузятся `src/render/assets.ts` по имени файла (`assets/<ключ>.png`); если какого-то
> файла нет — рисуется процедурный фолбэк. Этот бриф нужен, чтобы **догенерировать или
> заменить** ассеты: достаточно положить PNG с тем же именем в `src/assets/`.
---
@@ -93,13 +94,12 @@
---
## Как мы это применим (следующий заход)
## Как это подключено (уже работает)
1. Кладём PNG в `src/assets/` (новая папка) и импортируем как URL (Bun умеет в `import img from './x.png'`).
2. В `src/render/assets.ts` заменяем процедурные `drawX()` на
`new THREE.TextureLoader().load(url)` с теми же ключами — больше нигде ничего менять не нужно
(рендер берёт текстуры по ключам, см. `docs/ARCHITECTURE.md` → «Тема / ассеты»).
3. При желании заводим тему `Theme` со ссылками на наборы ассетов, чтобы переключать стиль.
1. PNG лежат в `src/assets/` с именами-ключами (`floor.png`, `player-ranged.png`, …).
2. `src/render/assets.ts` грузит их в рантайме через `THREE.TextureLoader` по пути
`assets/<ключ>.png` (НЕ импорт-бандлингом). Нет файла → процедурный фолбэк `drawX()`.
3. Dev-сервер отдаёт `/assets/*` из `src/assets/`; прод-сборка копирует их в `dist/assets/`.
4. HUD-ассеты (`heart-*`, `icon-*`) грузит `HudOverlay`, меню (`logo`, `menu-bg`) — `index.html`.
Если пришлёте ОДИН атлас вместо отдельных файлов — приложите JSON с прямоугольниками
(`{ "player-ranged": [x,y,w,h], ... }`), мы нарежем через `texture.repeat`/`offset`.
**Заменить/добавить:** просто положи PNG с тем же именем в `src/assets/` — подхватится само.