This commit is contained in:
Leonid Pershin
2026-08-18 23:51:10 +03:00
parent d8f8db6a48
commit 65feda3756
50 changed files with 1485 additions and 224 deletions
+15 -6
View File
@@ -35,10 +35,10 @@ Everything the main menu needs in one request.
```json
{
"maxSchools": 6,
"defaultStartDate": "2012-04-03T06:00:00Z",
"defaultStartDate": "2012-03-31T06:00:00Z",
"gameMinutesPerRealSecond": 5,
"schools": [
{ "id": 1, "name": "Гимназия №14", "gameTime": "2012-04-03T07:35:00Z", "running": false, "speedIndex": 1 }
{ "id": 1, "name": "Гимназия №14", "gameTime": "2012-03-31T07:35:00Z", "running": false, "speedIndex": 1 }
]
}
```
@@ -66,13 +66,22 @@ Placeable (non-abstract) types plus labels in `lang`, and the last-wins `maps/de
`core` plus the listed extras. The server always prepends `core`. `mods` is a comma-separated
list of extra pack ids; omit it for vanilla. Unknown extras return `400` `unknown-mod`.
Room slots include a `count` (how many of the default thing the def places). Things carry
`pupilSlots` — how many pupils that thing hosts for lessons. The create editor copies both onto
the map instance; the snapshot's per-node pupil-slot total is computed on the server.
Room defs that are homerooms carry `homeroom`, `seatThing` and `defaultSeats` instead of a
slot table. A map classroom stores `seats` — how many of that thing occupy the room. Capacity is
still `ThingDef.pupilSlots × seats`. Named slots remain on rooms whose furnishing actually
varies (cafeteria, medical office, principal's office, library). The create editor shows a
single seats field on a homeroom and the old slot rows on everything else.
Things carry `pupilSlots` — how many pupils that thing hosts. The snapshot's per-node pupil-slot
total is computed on the server.
`nameSets` is the list of placeable name packs (`defName` + label). The create dialog picks one;
it is independent of the UI language.
`subjects` is the list of placeable subjects (`defName`, label, `gradeMin`/`gradeMax`,
`hoursPerWeek`, and `skills` with shares). The assignment form in a later phase reads it; the
create editor does not.
`lang` is the same value Hello carries — not `Accept-Language`. Anything other than `en` is
Russian.
@@ -83,7 +92,7 @@ Body:
```json
{
"name": "Гимназия №14",
"startDate": "2012-04-03T06:00:00Z",
"startDate": "2012-03-31T06:00:00Z",
"modIds": [],
"map": null,
"nameSetId": "Slavic"