adding classification and division yard updates, train collisions, engine and car updates, turnout improvements.

This commit is contained in:
Jesse
2026-08-04 21:03:17 -04:00
parent 4bba991f41
commit 821d3cdffa
26 changed files with 6876 additions and 2638 deletions
+13 -2
View File
@@ -202,8 +202,19 @@ export type CrewTray = {
/** null while a local crew is switching without a train card. */
trainNumber: number | null;
trainIsExtra: boolean;
/** Which end the engine occupies (§A.3). */
engineFront: boolean;
/**
* WHERE THE ENGINE SITS IN THE TRAY, as an index into `consist`.
*
* A Crew Tray is an engine plus its Rolling Stock, and the engine may be PULLING (index 0, ahead
* of everything), PUSHING (index `consist.length`, behind everything) or somewhere in the middle
* doing both at once. That last case is why this is an index and not the boolean it replaced —
* `engineFront` was written in three places and read in none, so the engine had a position the
* game recorded and never used.
*
* The engine is NOT one of the `consist` entries: §8.2 counts the consist as Rolling Stock, and
* the four-car limit (§A.4) is a limit on cars, not on the locomotive hauling them.
*/
engineAt: number;
/** ORDERED, left-to-right. Max 4 including any caboose (§A.4). */
consist: RollingStock[];
direction: Direction;