Ship a disk example pack so last-wins, patches and create-with-a-mod are tested for real.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+6
-1
@@ -218,6 +218,10 @@ create раскладка замораживается вместе с набо
|
||||
Моды — подпапки на диске сервера, например `mods/<id>/`. Ядро — мод `core`: тот же формат папки,
|
||||
но **всегда включён**, в UI создания его нельзя снять. Остальные папки — чекбоксы.
|
||||
|
||||
Живой образец — [`../../src/HSchool.Server/mods/example/`](../../src/HSchool.Server/mods/example/):
|
||||
`pack.jsonc`, две черты, набор имён, патч, last-wins и одна комната. Пока его не выбрали, ваниль
|
||||
не меняется. README внутри папки — как добавить своё.
|
||||
|
||||
```
|
||||
mods/
|
||||
core/
|
||||
@@ -227,7 +231,7 @@ mods/
|
||||
en.jsonc
|
||||
maps/
|
||||
default.jsonc # ванильная раскладка
|
||||
furniture-pack/
|
||||
example/ # образец, не контент; выключается в create
|
||||
defs/
|
||||
patches/ # правки чужих def, не копии
|
||||
localizations/
|
||||
@@ -284,6 +288,7 @@ mods/
|
||||
| Пустая комната | Можно; граф связный, двор всегда в графе |
|
||||
| Действия | Заготовки в def, без исполнения и без приказов |
|
||||
| Моды | `mods/<id>/`; `core` всегда первый и не снимается; остальные — UI create |
|
||||
| Образец пака | `mods/example/`: настоящая папка рядом с `core`, не контент |
|
||||
| Коллизии имён | Последний пакет победил (defs и локали), warning в лог |
|
||||
| Наследование | `parent`, `abstract`; поле ребёнка заменяет, не мержит массивы |
|
||||
| Патчи | `patches/` после наследования; ops: add / replace / remove; неизвестный op — ошибка |
|
||||
|
||||
@@ -12,8 +12,9 @@
|
||||
**Моды существуют на бумаге — остался проверяемый путь.** Удостоверение пака уже есть:
|
||||
`pack.jsonc` (версия и `requires`), название в локалях по id, `GET /api/mods?lang=` отдаёт
|
||||
подпись, создание отказывает во внятном коде, если зависимости нет или они замкнуты в цикл.
|
||||
Порядок загрузки сервер выстраивает сам и кладёт в сейв. В `mods/` по-прежнему лежит один
|
||||
`core`: last-wins, патчи и дорога «игрок выбрал мод» ждут настоящую папку — это фаза 23.
|
||||
Порядок загрузки сервер выстраивает сам и кладёт в сейв. Рядом с `core` лежит `mods/example` —
|
||||
маленький скучный пак на диске, чтобы last-wins, патчи и дорога «игрок выбрал мод» проверялись
|
||||
настоящей папкой, а не документами в памяти.
|
||||
|
||||
**Числа поведения живут в коде вопреки [`ai.md`](ai.md).** Там записано: «Числа поведения —
|
||||
отдельный деф правил, как `StaffingDef` у штата». В `BehaviorDef` уехали порог нужды, скорость
|
||||
@@ -66,7 +67,7 @@
|
||||
проверена ни разу.
|
||||
|
||||
Пак должен быть виден из тестов хоста, то есть лежать рядом с `core` в `mods/` и ехать в вывод
|
||||
сборки теми же правилами.
|
||||
сборки теми же правилами. Живая папка — `src/HSchool.Server/mods/example/`.
|
||||
|
||||
## Числа поведения — в `BehaviorDef`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user