more info on train moves in history. train info added to tooltip on timetable and division map. support for multiple trains in area switching. more info on train7/8 wrt location of coach on initial train build.

This commit is contained in:
Jesse
2026-08-16 21:45:19 -04:00
parent 98f93e6691
commit 08339effba
14 changed files with 1029 additions and 40 deletions
+7 -1
View File
@@ -79,6 +79,8 @@ export function divisionSvg(nodes: DivisionView[]): string {
engineAt?: number;
/** East or west, always — a Division runs east and west and so does its rolling stock. */
facing?: 'e' | 'w';
/** The train's printed card, so a train out on the Mainline can still be asked what it is. */
what?: string;
region?: number;
direction?: string;
stagesLeft?: number;
@@ -311,7 +313,11 @@ export function divisionSvg(nodes: DivisionView[]): string {
: '';
out += `<g class="bs-train" data-tip="${esc(t.label)} \u2014 carrying ${esc(cars.join(', ') || 'no cars')}${
cars.length ? ` (${loaded} loaded)` : ''
}${inRegion ? ` \u00b7 region ${(t.region ?? 0) + 1} of ${c.regions}${dir}` : ''}${esc(stages)}">` +
}${inRegion ? ` \u00b7 region ${(t.region ?? 0) + 1} of ${c.regions}${dir}` : ''}${esc(stages)}${
// What the card prints. A train on the Mainline is exactly where "why did that leave without
// me?" gets asked, and EXPEDITED is the answer more often than not.
t.what ? `\n\n${esc(t.what)}` : ''
}">` +
`<rect x="${tx - w / 2}" y="${c.y + 22}" width="${w}" height="19" rx="3"/>` +
`<text class="bs-tlab" x="${tx}" y="${c.y + 35}" text-anchor="middle">${esc(label)}</text>`;
out += '</g>';