Fix layout issues in the user interface by adjusting CSS styles for better responsiveness and accessibility. Update component structure to improve maintainability and enhance user experience across different devices.
ci / server (push) Failing after 3m32s
ci / client (push) Successful in 15s

This commit is contained in:
Leonid Pershin
2026-08-18 13:21:41 +03:00
parent cc9efca891
commit d96b420133
6 changed files with 430 additions and 0 deletions
+60
View File
@@ -0,0 +1,60 @@
# Ближайший горизонт: что видит игрок
Это не текущее состояние кода, а договорённости на ближайшее планирование.
Как устроено сейчас — в [`architecture.md`](../architecture.md).
## Решение: не PixiJS, а менеджер на DOM
Внутри школы нет 2D-сцены, камеры и спрайтов. Интерфейс ближе к менеджеру, чем к классическому
QSP: не «полотно текста + список действий», а панели.
Ориентир по экрану школы (после часов и паузы, которые уже есть):
- **Карта** — дерево локаций (tree view).
- **Общие события** — то, что происходит в школе целиком, не привязано к выбранному узлу.
- **Выбранная локация** — что происходит именно там.
Картинок локаций и портретов в этом горизонте нет; позже можно добавить, не ломая панели.
Анимация пока только переходы панелей/списков и живые цифры (часы, счётчики). Графики —
когда появятся числа, которые ими стоит показывать, не раньше.
Клиент остаётся plain DOM + CSS. `pixi.js` для этого не нужен и в этом горизонте его стоит
убрать из зависимостей.
Симуляция по-прежнему на сервере: ученики и комнаты могут существовать как данные в Arch ECS,
даже если клиент рисует строки списка, а не человечков.
Типы комнат, предметов и действий описываются **defs** (JSONC), конкретная школа — **картой-инстансом**.
Подробности: [`defs.md`](defs.md). Дерево в UI — это территория → здания → этажи → помещения.
## Что уже зафиксировано
| Тема | Решение |
| --- | --- |
| Вид внутри школы | Менеджер: дерево + общие события + содержимое локации |
| Рендер | DOM, не WebGL/Pixi |
| Картинки | Нет в этом горизонте |
| Анимация | Переходы и живые цифры |
| Часы, пауза, скорость | Остаются; это не отменяется панелями |
| Логика игры | Только сервер; клиент шлёт намерения и рисует то, что сказали |
| Данные игры | Defs (типы) + карта (инстанс), см. [`defs.md`](defs.md) |
| Дерево карты | Территория → здание → этаж → помещение; рёбра проходов — граф инстанса |
| Редактор карты | Только при создании школы |
| Моды | Папки на сервере, выбор в диалоге создания |
| Поток школы | Цель: один поток и один ECS world на школу, см. [`runtime.md`](runtime.md) |
## Ещё не решено
Эти вопросы закрывают игровой срез. Карту и моды больше не блокируют.
1. Что такое «общее событие»: лог за смену, только текущие процессы, или новости («урок начался»)?
2. Что видно на выбранной локации сначала: предметы (в т.ч. пусто), заготовки действий, вакансии?
3. Выбор узла в дереве — только фильтр на клиенте или намерение на сервер?
Открытые вопросы по core-моду, двору и коллизиям имён — в конце [`defs.md`](defs.md).
## Заведомо не сейчас
- Портреты, арт локаций, схема этажа в пикселях.
- Управление персонажем от первого/третьего лица.
- Победа/кампания, пока нет даже наблюдаемого мира.