Files
2026-10-21 05:12:42 +03:00

3.3 KiB

Derail Valley Community Map with Catenary DC Layer

Interactive vector web map of Derail Valley railway network with DC electrification infrastructure overlay (Catenary-DC / WE6SIM mod).

Architecture & Stack

  • Frontend: Vanilla ES6 modules, HTML5 Canvas 2D (double-buffered with dynamic overlay).
  • Coordinate System: Game engine coordinates (meters), origin at bottom-left, mapped via Matrix and View transforms.
  • Datasets:
    • catenary_dv.json: 164 chained polylines (optimized from 3,751 segments), 9 traction substations, 5 neutral sections, 34 interruption clusters, 129 warning signs.
    • trackdata_dv.json: Rail tracks (cubic Bézier curves) and junction points.
    • poi_dv.json: Stations, offices, service tracks, turntables, landmarks.
    • shop_items.json: Shop inventories and prices.

Catenary Layer Features

  • Wire Suspension Rendering:
    • Single (6.0m, 1500V/750V): standard solid vector line.
    • Dual (6.0m, 1500V): high-capacity twin catenary stroke.
    • Quad (6.0m, 1500V): heavy 4-wire mountain pass stroke with dark border.
    • Trolley (6.0m, 750V): fine yard wire.
    • Side Rail (4.5m, 1000V): dashed 3rd contact rail at IME and SM mine tracks.
    • Neutral Sections (0V): contrasting red-and-white dashed lines with 0V danger badges.
  • Color Modes:
    • Voltage: 1500V DC (#00d2ff), 1000V DC (#ff9f1c), 750V DC (#2ec4b6), 0V Neutral (#e63946).
    • Substation: Distinct color per feeding substation (CME/IME1500, CP750, FF1500, HB1500, IME1000, IMW1500, OR750, SM1500, SM1000).
    • Wire Type: Color-coded by physical suspension category.
  • Markers & Tooltips:
    • Traction Substations: ⚡ badge with nominal voltage, supply voltage, max load (kW), and regenerative inverter presence.
    • Neutral Sections: ⛔ 0V center badge with section ID, length, connecting substations, disconnect traction warning, and entrance/exit boundary signs (NeutralBegin, NeutralEnd, NeutralWarning) on high zoom.
    • Interruption Signs: Typed diamond badges distinguishing Drop Pantographs (⤓), Advance Warning (⚠), and Raise Pantographs (⤒).
    • Integrated Tooltips: Hovering over electrified track curves provides unified telemetry displaying both track geometry (grade, curve radius, speed limit, altitude) and catenary network specs (voltage, suspension type, feeding substation, section length).

CommunityMapLocation Mod Integration

Bug Fixes

  1. Rotation Desync: LocationResponse accepts rotationTransform from locomotive transform or camera heading (fixing player orientation desync).
  2. URL Formatting: Fixed string immutability bug in address.replaceAll inside connectPlayerLocation.

CORS Configuration

In <GameDirectory>/Mods/CommunityMapLocation/Settings.xml:

<Settings>
  <Port>9090</Port>
  <RequestSourceType>Any</RequestSourceType>
  <RequestSource>http://localhost:8080</RequestSource>
</Settings>

Note: If RequestSourceType is Any, the game mod allows cross-origin requests from any web host (localhost, GitHub Pages, Gitea).

CI/CD Workflows

  • Gitea Actions (.gitea/workflows/deploy.yaml): JSON dataset validation, JS syntax verification, artifact packaging with actions/upload-artifact@v3, releases with akkuman/gitea-release-action@v1.
  • GitHub Pages (.github/workflows/deploy-pages.yml): Automated GitHub Pages deployment on push to main.