Update design documentation to clarify the structure and relationships of game elements. Enhance the definitions of TerritoryDef, BuildingDef, and FloorDef, and introduce new concepts like Patch for modifying definitions. Revise the near-term design to outline the UI structure and interactions, ensuring a clear framework for future development phases.
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# Фаза 2. Работник школы и диск
|
||||
|
||||
## Зависимости
|
||||
|
||||
Нет по коду клиента. Ломает текущий общий `GameLoopService`.
|
||||
|
||||
## Зачем
|
||||
|
||||
Основа среза: каждая школа — свой поток, свой Arch `World`, свой файл. Пока ещё можно обойтись
|
||||
часами без карты — сейв расширится в фазе 3, формат закладывать расширяемым.
|
||||
|
||||
## Задачи
|
||||
|
||||
- [ ] Супервизор держит ящики `id →` очередь; не трогает `World`
|
||||
- [ ] У школы выделенный поток (`LongRunning`), свой таймер фиксированного шага, свой `World`
|
||||
- [ ] Команды create/delete/open/close/running/speed идут в ящик, не в общий цикл
|
||||
- [ ] Меню читает опубликованные снимки, как сейчас, без блокировки работника
|
||||
- [ ] Кадры часов по-прежнему из работника в outbox соединения
|
||||
- [ ] Сейв на диск: имя, id, часы, running, speedIndex; запись при create/delete, shutdown, редкий снимок часов (не 20 Гц)
|
||||
- [ ] Старт процесса поднимает школы с диска
|
||||
- [ ] Обновить инвариант в `AGENTS.md`: трогает школу только её работник
|
||||
- [ ] Тесты AppHost: create → рестарт хоста (или явный reload) → школа на месте с тем же временем с разумной погрешностью снимка
|
||||
|
||||
## Критерий готовности
|
||||
|
||||
- `dotnet test` проходит
|
||||
- Две школы тикают независимо (пауза одной не останавливает часы другой — уже так по симуляции; поток не должен это ломать)
|
||||
- После перезапуска сервера список школ не пустой, если их создали
|
||||
|
||||
## Стоп
|
||||
|
||||
Не грузить defs в этой фазе. Не писать файл каждый тик.
|
||||
Reference in New Issue
Block a user