Elevation++ — Changelog
================================

v0.9.9
------
Fixes:
- Elevated stations no longer accept being lowered into the ground:
  placing a station with any part of its footprint below the terrain
  surface is now rejected with the standard "Terrain too high" error,
  marking the offending tiles red — matching how vanilla elevatable
  buildings behave. (The stations' custom footprint carried no terrain
  bounds, so the game's terrain-collision validator skipped them
  entirely.) Raised placement on pillars and splicing a station onto
  an existing elevated line are unaffected.

Verified against game v0.8.7.

v0.9.8
------
New building — Balancing pipe connector:
- The pipe connector's compact 1x1 body with the full feature set of
  the vanilla pipe balancer: per-port priorities, the "enforce
  strictly even inputs/outputs" toggles and the same prioritization
  management window — covering all six connections, including the
  vertical (top/bottom) ones.
- Can be placed directly onto an existing pipe and cuts itself in,
  just like a regular connector — on straight runs, riser elbows and
  even mid-riser. (The pipe is cut when the ghost is placed, so flow
  pauses until construction finishes.)
- Found right next to the pipe balancer in the toolbar, unlocked by
  the same research. Costs, workers, maintenance and power are half
  of the vanilla pipe balancer (rounded up).

Fixes:
- The loading animations of ELEVATED station modules now play fully:
  the fluid module extends its loading pipe down into the tank wagon
  and the loose module animates its chute. (The baked animation data
  was looked up under a placeholder asset root for modded protos —
  "Animation data not found" in the game log — leaving those parts
  frozen in their rest pose; only Animator-driven parts like the pump
  kept moving.)

v0.9.7
------
Elevated station fixes for game Update 4 (v0.8.6c):
- Placing an elevated station onto an existing elevated track no longer
  raises a huge mound of dirt under it. Update 4 terraforms a substitute
  plinth up to the entity's base height wherever a support pillar cannot
  be built — under a station spliced onto a track, that meant a hill up
  to deck height. Elevated stations now simply skip such tiles; the
  building rests on its remaining ring pillars.
- An elevated station now anchors the track support chain, the way
  ground stations always have. Previously a station spliced into an
  elevated line BROKE the chain — spans that used to reach a pillar
  through the station's stretch suddenly flagged as unsupported. The
  station's track blocks now count as full support (they stand on the
  station's own pillars), applied on placement and on save load, so
  existing affected saves heal themselves.
- The support scaffolding under a station root no longer stays
  blueprint-blue after construction completes. The vanilla sync that
  promotes a finished elevated building's pillars only handles entities
  with belt/pipe ports; the station root has none. (Existing saves:
  the game's own load-time validation already repairs stale blue
  pillars.)
- Elevated stations are also opted out of the construction-time
  foundation shaping (applied relative to entity height), which would
  similarly re-shape ground toward deck level on build or deconstruct.

Verified against game v0.8.6c (Update 4).

v0.9.6
------
Auto-portals while laying track:
- A new elevated track can now be dragged straight over an existing
  track (crossing or stacked in parallel): wherever the planned centre
  support pillar cannot be placed, the portal pillar pair is planned
  and built automatically, crossbeam included. Stacked lines no longer
  have to be built strictly top-down. The drag ghost shows the real
  portal columns, and what you see is what gets built.
- This applies to ANY spot where the centre pillar is blocked (e.g. a
  building or belt below), not just track crossings — if the flanking
  pair fits, the placement is valid.
- Auto-placed portals use the closest stance; convert them afterwards
  with a modifier-click if you want a wider one.

Portal stance is now a fixed modifier ladder:
- Shift = closest valid spot, ctrl = +2 tiles, ctrl+shift = +4,
  alt = +6, alt+shift = +8. The RailPortalCtrlDistance setting from
  v0.9.5 is removed (a leftover entry in an existing config is
  ignored).

Height-aware track snapping:
- When laying track with the cursor raised (arrow keys), hovering an
  existing track at a different height no longer snaps the cursor —
  and its height — to that track. Snapping to tracks at the matching
  height still works (extending or connecting elevated lines), and
  picking at ground level is unchanged. Disable via the new
  RailBuildHeightAwareSnapping setting to restore vanilla snapping.

v0.9.5
------
Rail portals — run a train track under another track:
- In the vanilla add/remove-pillars tool, shift- or ctrl-clicking a
  block of an elevated track places TWO support pillars beside the
  track (left and right, perpendicular to it) instead of the single
  centre pillar, leaving the space underneath free for another track.
  Both pillars count as full support for the clicked block.
- Each side pillar lands on the first valid spot found by sliding
  outward from the track; obstacles (including the other track of a
  dual line) are slid past automatically. Shift places as close to the
  track as possible; ctrl goes further out by a configurable distance
  (RailPortalCtrlDistance, default 1 tile).
- Other same-level tracks spanned by the portal (dual lines, with or
  without a gap between them) are supported by the same click: they
  receive their own pillars at the exact same column positions,
  replacing any of their vanilla pillars standing inside the portal.
  Tracks crossing 3.5+ tiles below are what the portal is for; decks
  at awkward in-between heights (where a crossbeam could never fit)
  make the placement invalid instead.
- Removing any portal pillar demolishes the whole portal in one click.
  Another track's share is only removed if that track can afford to
  lose the support (same check the vanilla tool uses); otherwise its
  columns stay up.
- Shift/ctrl-clicking an EXISTING pillar replaces it with the side
  pair (and converts a portal between the close and far stance). The
  new spots are validated before anything is removed, with rollback,
  so support is never lost.
- Ghost previews of both columns follow the cursor with the modifier
  held; the vanilla centre-pillar ghost is hidden meanwhile.
- A concrete crossbeam is rendered between the two columns: two "long
  saddle stones" matching the vanilla pillar-top blocks (procedurally
  generated, textured with the game's own concrete), spanning under
  the deck(s) and covering the pillars' saddle stones. Clearance under
  the beam is kept so an electrified track can pass 4 tiles below.

v0.9.4
------
Vertical pipe connections for pipe connectors:
- Pipe connectors now have a top and a bottom port, so pipes can connect
  to them vertically (from above and below), not just from the four
  horizontal sides. Fluid flows through vertical ports exactly like
  through horizontal ones. Existing connectors from older saves gain the
  vertical ports when rebuilt or tier-upgraded.
- A connector can be cut directly into an existing pipe at a riser's
  corner (elbow) tile and even into the middle of a vertical run — the
  pipe splits and reconnects through the connector's vertical ports.
  (Vanilla refused both with "not flat".) Works from the connector
  toolbar button and by clicking a 1-tile pipe placement on the pipe.
- The connector model only has a riser stub on top; when a pipe connects
  from below, the mod renders a mirrored copy of the stub underneath so
  the joint looks finished from every side.

Placement quality-of-life (connectors, balancers, sorters, lifts and
elevated stations):
- Their maximum placement elevation now follows TransportPillarMaxHeight
  (previously stuck at the vanilla 5 tiles because the cap is baked into
  the protos at registration, before the mod raises the pillar height).
  Connectors now snap onto elevated pipes at any supported height.
- The pipe tool's small height tooltip is now also shown when placing
  any of these height-adjustable buildings.
- Placing a connector onto an existing pipe now shows the green "will
  connect" icons on the ports that the cut-in will reconnect (vanilla
  showed them as red/blocked).
- The placement cursor of a pipe connector now shows its vertical
  (top/bottom) port arrows, with the same green feedback when a vertical
  connection will be made; built connectors already showed them. The
  down-facing port icon is drawn next to the connector instead of two
  tiles below it.

v0.9.3
------
- Verified against game version 0.8.6.
- New: a single belt/pipe placement drag can now be much longer than the
  vanilla ~31 tiles. Longer runs are routed internally as several stitched
  sections, each still fully validated by the game (collisions, ramps,
  pillar support, ports). Configurable via TransportPlacementMaxLength
  (default 128 tiles, min 31 = vanilla behavior, max 512).

v0.9.2
------
- Elevated belts/pipes can now be held up by the supported connectors
  (balancers, mini-zippers, machine ports) at their ends. A short
  segment spanning between two connectors no longer requires its own
  pillar, so the auto-placed pillar there can be removed and the segment
  stays up instead of collapsing. Only self-supported structures count
  as anchors (not bare belt-to-belt junctions), and the normal support
  distance still applies between the two anchors, so longer spans still
  need a pillar. (The game still auto-places that pillar when you build;
  this only lets you remove it.)

v0.9.1
------
- The auto-built support pillars under elevated stations now render as a
  hollow ring around the outer edge of the footprint instead of a solid
  block beneath the whole building. Interior tiles carry no pillar (and
  need none — the deck rests on the ring of edge pillars). The rule is
  shape-aware, so thin modules stay fully pillared and the wide
  molten/nuclear footprints get a proper outline.

v0.9.0
------
Elevated train stations:
- Every train station can now be built elevated on auto-rendered
  support pillars: the root, all cargo modules (unit, loose, fluid,
  molten, empty) and fuel modules (coal, liquid, nuclear), for both
  normal and electrified rail.
- They live in a dedicated "Elevated stations" toolbar tab, grouped
  and ordered like the vanilla Stations menu (root first, molten last),
  reuse the vanilla icons, and unlock with the same research as their
  ground counterparts.
- Obsolete / save-compatibility-only station protos (e.g. the legacy
  standalone hydrogen fuel module) are skipped, matching the vanilla
  menu.
- A non-electrified elevated station can be converted in place with the
  vanilla "Electrify track" tool, just like a ground station (previously
  the tool reported "Collision with pillar" against the station's own
  support pillars, or silently failed at elevation).
- Electrified elevated stations grow their catenary support masts on the
  platform like normal stations (the masts would otherwise be rejected
  for sitting on the station's own footprint / support pillars).

Pillar limits (formerly "Elevated Rails Plus", now extended to pipes
and belts):

Train tracks (rails):
- Pillar height limit raised from 6 to 16 tiles (configurable up to 30
  via RailPillarMaxHeight). This also lifts the rail build cursor's
  up-arrow cap.
- Maximum distance between elevated track and its supporting pillar
  raised from 7 to 14 tiles (configurable up to 56 via
  RailPillarSupportDistance). Auto-built pillars are placed roughly
  twice this value apart.
- Rendering fix for rail pillars taller than the vanilla tower mesh:
  the mod stacks additional column segments down to the ground so tall
  pillars no longer show a gap (Harmony patch on the pillar renderer).

Pipes and belts (transports):
- Pillar height limit raised from 6 to 16 tiles (configurable up to 30
  via TransportPillarMaxHeight). This also lifts the pipe/belt build
  cursor's up-arrow cap.
- Maximum distance between an elevated pipe/belt and its supporting
  pillar raised from 4 to 8 tiles (configurable up to 32 via
  TransportPillarSupportDistance), so auto-built pillars are placed
  roughly twice as far apart. Transport pillars are drawn tile-by-tile,
  so they extend to the new heights with no rendering work needed.

All four values are editable in the in-game mod settings and changes
apply immediately.
