Merge branch 'phase/32-weather-warmth'

This commit is contained in:
Leonid Pershin
2026-08-20 04:18:49 +03:00
46 changed files with 1364 additions and 295 deletions
+7 -3
View File
@@ -1,4 +1,4 @@
# Wire protocol v7
# Wire protocol v8
The client talks to the server two ways:
@@ -680,11 +680,13 @@ The first frame the client receives.
| 1 | `i64` | client clock, echoed unchanged |
| 9 | `u32` | server tick when the ping was handled |
### `0x83` Clock — 24 bytes
### `0x83` Clock — 27 bytes
Sent every tick to every connection that has a school open, and only to those.
`skipAllowed` is the server's verdict; the client must not recompute it.
`skipTargetUnixMs` is 0 when skip is refused.
Temperature is outdoor tenths of a °C (`i16`, so 50 is 5.0 °C). Precipitation is `0` none,
`1` rain, `2` snow. The client must not derive weather from the month.
| Offset | Type | Field |
| --- | --- | --- |
@@ -695,6 +697,8 @@ Sent every tick to every connection that has a school open, and only to those.
| 14 | `u8` | speed index |
| 15 | `u8` | `1` skip allowed, `0` refused |
| 16 | `i64` | skip target, milliseconds since the Unix epoch, UTC; `0` if refused |
| 24 | `i16` | outdoor temperature, tenths of a °C |
| 26 | `u8` | precipitation: `0` none, `1` rain, `2` snow |
### `0x84` SchoolGone — 5 bytes
@@ -780,7 +784,7 @@ Each person:
the oldest, because a stale clock is worthless once a newer one exists.
- The map snapshot and presence use a separate reliable queue so ticks cannot crowd them out.
## Not in v7 yet
## Not in v8 yet
Authentication, Sit orders, an event log, walk animation, and `OpenLocation` on the server —
the tree and the location panel are filtered on the client from the snapshot plus presence.