import type { SouthBox, SouthPoint } from './southExpansion.js'; export declare const WESTERN_ENTRANCE_NAME = "The Western Entrance"; /** Everything the pass covers, sea round it included. Rows north of 1119 are the South Fields' shore: only sea changes. */ export declare const WESTERN_ENTRANCE_BOX: SouthBox; /** The first row that is open sea right across the box (the South Fields' jetty ends on 1119). */ export declare const WESTERN_ENTRANCE_NEW_FROM_Z = 1120; /** * The headland, clockwise from the neck's north-west corner (tile corners, like SOUTH_FIELDS_OUTLINE). The neck * (x 36-66) meets the fields' south sand between the farm track's end and the jetty, which keeps its water (the fish * spot at 73, 1120). The west and south shores are cliff; the neck is sand. The flat run at z 1194 is the lookout's point. */ export declare const WESTERN_ENTRANCE_OUTLINE: readonly SouthPoint[]; /** The neck: sand at sea level rising to the headland's grass; no cliff rim. */ export declare const WESTERN_ENTRANCE_NECK: SouthBox; /** The headland's ground height (terrain steps); the neck rises to it. */ export declare const WESTERN_ENTRANCE_GROUND_HEIGHT = 3; /** The station precinct is flattened to one height so decks, platform and track meet level. */ export declare const WESTERN_PRECINCT: SouthBox; export declare const WESTERN_PRECINCT_HEIGHT = 3; /** * The station is built from the Blender kit (quest-workshop district western, westlib.py, 2026-10-09; types * CAPITAL_BUILDING_MODELS westcarriage, westgangway, westplatform, westramp, westportal, westtrack, westlantern, * westsignpost, westnotice, westlookout, westcargo). The kit's decks (the carriage floor, the platform top, the ramp's * boards, the gangway plate) stand WESTERN_KIT_DECK_METRES above the ground their model stands on, so the tiles under * them are laid that much higher for the walk (2 terrain steps of 0.45 m), and the client seats each model's origin * back on the ground (WorldView: the anchor tile is a deck tile, so a rawHeight model placed on it would float by the * deck's height, as the Sundered Span's paving did). */ export declare const WESTERN_KIT_DECK_METRES = 0.9; export declare const WESTERN_PLATFORM_HEIGHT: number; export declare const WESTERN_DECK_HEIGHT: number; /** How far the client lowers each deck model from its anchor tile's height so its base sits on the ground. */ export declare const WESTERN_KIT_ANCHOR_LIFT_METRES: Readonly>; /** The rock knoll the tunnel mouth is cut into, by the west cliff: solid stone, crags on top. */ export declare const WESTERN_KNOLL: SouthBox; export declare const WESTERN_KNOLL_HEIGHT = 7; /** The arrival path: down the neck to the platform's forecourt (3 wide), and the branch west and south to the lookout. */ export declare const WESTERN_ENTRANCE_ROADS: ReadonlyArray<{ id: string; w: number; pts: readonly SouthPoint[]; }>; /** * The boarding platform: a run of westplatform pieces (3 x 3, their kerb on the track side) along the rake's north * side, its top at deck height; its tiles are flagstones for the walk. A step of two off the forecourt (MAX_STEP_HEIGHT). * Long enough for the whole rake (James, 2026-10-10: "it has no front, no back, only 2 carriages"): the locomotive's * nose at the portal to the guard van at the east end. */ export declare const WESTERN_PLATFORM: SouthBox; export declare const WESTERN_PLATFORM_PIECES: readonly SouthPoint[]; /** * The line (James, 2026-10-10: "tracks stretching all the way back from it too coming from out of the ocean"): one tile * of track (westtrack, rails along the facing) on this row from the tile in front of the mouth, east along the whole * platform and across the meadow, down the causeway and into the sea at the headland's east side. No buffer stop: the * train (phase two, NEXT_STEPS "the circuit") comes in from the sea, stops at the platform and runs on into the portal. */ export declare const WESTERN_TRACK_Z = 1153; export declare const WESTERN_TRACK: { readonly minX: 27; readonly maxX: 199; readonly z: 1153; }; /** * The causeway: a dwarven stone bed three wide carrying the line off the east cliff and down into the water, its last * tiles at the waterline (height 0), so the rails come up out of the sea. Lantern posts on its outer rows. */ export declare const WESTERN_CAUSEWAY: SouthBox; export declare function westernCausewayHeight(x: number): number; export declare const WESTERN_CAUSEWAY_LANTERN_XS: readonly number[]; /** The sea end of the line: the last rail tile, at the waterline (the /tp for "where the train comes from"). */ export declare const WESTERN_SEA_END: { readonly x: 199; readonly z: 1153; }; /** * The home end's sea portal (Western Kingdoms phase 2, slice 2-4; NEXT_STEPS "the circuit" item 1 (c): "so the train * comes out of something, not the water"): the half-drowned dwarven arch (westseaportal, kit batch A) the train rises * through out of the sea at the causeway's end, exactly as at Lantern Wake (lanternWake.ts LANTERN_WAKE_SEA_PORTAL): two * tiles past the line's sea end, facing west down the line, so it stands on open sea x 200-202, z 1149-1157; its five * middle tiles are open for the rake (half across 2) and only its piers' tiles (z 1149-1150 and 1156-1157) block, water * no one stands on. Nothing of the causeway or the line moves. */ export declare const WESTERN_SEA_PORTAL: { readonly id: "western-sea-portal"; readonly x: number; readonly z: 1153; readonly facing: "w"; readonly model: "westseaportal"; }; /** The sea portal's tiles (its 9 x 3 turned to face west: three deep along the line, nine across it). */ export declare const WESTERN_SEA_PORTAL_BOX: SouthBox; /** * The gap row: the one tile between the platform's edge (z 1149) and the cars' sides (z 1151), stone at the ground * height and BLOCKED the length of the platform (the cliff rim's rule), so nobody steps off the platform onto the bed. * The step plates stand on it. */ export declare const WESTERN_GAP_ROW: { readonly minX: number; readonly maxX: number; readonly z: number; }; /** * The sea-side kerb: the row beyond the rake's far side, stone and blocked the platform's length too, so a doorway cut in * a piece's sea side (the Blender worker's v002 masks open both long sides) leads nowhere. */ export declare const WESTERN_SEA_KERB: { readonly minX: number; readonly maxX: number; readonly z: number; }; /** * The rake, nose west at the portal, along the track row (every piece 5 across, long along the line, facing e, its * anchor the middle tile on the track row). The four open cars of the dwarven carriage (westcarriage, 5 x 9): the * skirt and rails on the outer tiles, the middle three clear, the ends' middle tile open at the gangway's width, and * since 2026-10-10 the middle tile of the PLATFORM side open as the doorway (James: "you would enter from the side, * using the bridge style icon to jump on"). A gangway plate (westgangway) joins each pair of cars. The locomotive, * tender, cargo car and guard van are the Blender worker's (westloco 5 x 11, westtender 5 x 5, westcargocar 5 x 7, * westguard 5 x 7; plan 2026-10-10-western-train-pieces.md): their slots are reserved here to those sizes and placed by * the backend when the models land (WESTERN_RAKE_SLOTS). The joints between a car and a piece (WESTERN_JOINTS) are a * gangway plate once the piece is placed and a coupling chain (landingrail) while the slot is empty, so nobody walks out * of an end car onto the bed. Whole rake: loco 11, tender 5, joint, 4 x (car 9 + gangway), cargo 7, joint, guard 7 = * 72 tiles, the platform's length, x 30-101, the loco's nose three tiles off the portal's face with the lookout path's * level crossing between. The rake does not move yet (plan 2026-10-09-start-train.md is the moving train, phase two). */ export declare const WESTERN_CAR_ACROSS = 5; export declare const WESTERN_CAR_LENGTH = 9; export declare const WESTERN_CARS: ReadonlyArray; /** The gangway plates between the cars, on the track row. */ export declare const WESTERN_GANGWAYS: readonly SouthPoint[]; /** * The slots reserved for the Blender worker's pieces: model id, the tiles along the line, the anchor (the middle tile * on the track row) and the facing: every piece faces w, its front (local -y, the nose, the guard van's front door) to * the portal, its back (the loco's driver's deck, the tender's bunker deck) to the car behind it. Placed by the backend * only when the model is registered (CAPITAL_BUILDING_MODELS has the id), so the rails show through an empty slot. * `sideDoor`: the piece's mask opens its long sides' middle tiles (the cargo car and the guard van; local (-2, 0) is the * platform side when the piece faces w), so a step plate stands in front of it like a car's (WESTERN_STEPS). The loco * and the tender have no side door: the driver's deck (the loco's back two rows) is reached only over the tender, whose * bunker is solid between its front and its back deck strip (a walk-through tender is the model's v002: NEXT_STEPS). */ export declare const WESTERN_RAKE_SLOTS: ReadonlyArray<{ id: string; model: string; minX: number; maxX: number; anchor: SouthPoint; facing: 'e' | 'w'; sideDoor: boolean; }>; /** The joints between a car and a train piece: a gangway plate when the piece's model is placed, else a coupling chain. */ export declare const WESTERN_JOINTS: ReadonlyArray<{ x: number; z: number; slot: string; }>; /** * The step plates (weststep, a solid 1 x 1 plate on the gap row in front of each car's doorway, and in front of the * cargo car's and the guard van's since 2026-10-10): the bridge-style crossing. A click on the plate's icon from the * platform lands the player on the doorway tile; from the car, on the platform's edge tile (backend world.ts * handleWesternStep; TRAVEL_THROUGH_RANGE). `car` is the car's or the slot's id. */ export declare const WESTERN_STEP_MODEL = "weststep"; export declare const WESTERN_STEPS: ReadonlyArray<{ car: string; x: number; z: number; doorway: SouthPoint; platform: SouthPoint; }>; export declare function isWesternStepStyle(style: string | undefined): boolean; export declare const WESTERN_STEP_BOARD_TEXT = "You step up onto the carriage."; export declare const WESTERN_STEP_ALIGHT_TEXT = "You step down to the platform."; export declare const WESTERN_STEP_BOARD_LABEL = "Board the carriage"; export declare const WESTERN_STEP_ALIGHT_LABEL = "Step down to the platform"; /** * The tunnel mouth: a `caveentrance` drawn from the kit's portal (westportal, 9 across x 3 deep, the five middle tiles * open for the carriage, the piers solid; caveEntranceModel), facing east down the line, cut into the knoll. The click * refuses: the line is not open (backend world.ts handleCaveEntrance). */ export declare const WESTERN_TUNNEL_MOUTH_MODEL = "westportal"; export declare const WESTERN_TUNNEL_MOUTH: { readonly x: 25; readonly z: 1153; readonly style: "westportal-e"; }; export declare const WESTERN_TUNNEL_MOUTH_ID = "western-tunnel-mouth"; export declare const WESTERN_LINE_CLOSED_TEXT = "The line runs on under the sea. Board the train at the platform to ride it."; export declare function isWesternTunnelMouthStyle(style: string | undefined): boolean; /** The sea-cliff lookout at the headland's south-west point: a flagstone pad railed on its seaward side, the cliff's crags beyond. */ export declare const WESTERN_LOOKOUT: SouthBox; /** Plinth lanterns (westlantern) along the platform's back row, flanking the mouth, at the lookout and the way in. */ export declare const WESTERN_LANTERNS: readonly SouthPoint[]; /** Banner posts (townbannerpost1x1) at the platform's ends and the neck's foot. */ export declare const WESTERN_BANNERS: readonly SouthPoint[]; /** Rest benches (townrestbench3x1, 3 across) on the platform's back row, facing the cars. */ export declare const WESTERN_PLATFORM_BENCHES: readonly SouthPoint[]; /** * The All Aboard board (westnotice) at the forecourt's edge, read on the way to the platform. Since the station hub * (2026-10-10) it is a quest prop (`questprop`, style `westnotice:n`, storyQuests.ts questPropModel) so a click reads it: * the backend answers with westernStationNoticeText (westernTrain.ts), the line's rules and the next train. */ export declare const WESTERN_NOTICE_BOARD: { readonly x: 46; readonly z: 1144; }; export declare const WESTERN_NOTICE_PROP = "westnotice"; export declare const WESTERN_NOTICE_STYLE = "westnotice:n"; export declare const WESTERN_NOTICE_ID = "western-notice"; /** The supply corner between the forecourt and the platform's back: the kit's cargo stack, crates, a barrel, a sack, planks and rope. */ export declare const WESTERN_SUPPLIES: ReadonlyArray<{ x: number; z: number; kind: 'cargo' | 'dreadmodel'; style: string; }>; /** * Signposts: the kit's route fingerpost (westsignpost) at the neck, the forecourt and the east waymarker toward the lands * to come; readable placards for the welcome and the lookout. */ export declare const WESTERN_SIGNS: ReadonlyArray<{ id: string; x: number; z: number; kind: 'signpost' | 'dreadmodel'; style: string; }>; /** The lookout's fence: the kit's sea lookout rail (westlookout, 3 across, the sea on its front), on the pad's seaward row. */ export declare const WESTERN_LOOKOUT_RAILS: readonly SouthPoint[]; /** Pine copses: centre, count, radius. The dressing skips roads, the precinct, the knoll and the lookout. */ export declare const WESTERN_COPSES: ReadonlyArray<{ x: number; z: number; count: number; radius: number; }>; /** * THE STATION HUB (phase two, item 1; 2026-10-10): the meadow east of the platform's end, both sides of the line, built * from the phase-two kit (plan 2026-10-09-western-lands-kit-phase-two.md; westtickethut, westcanopy, westbanner, * westwaymarker, westcrane, westshelter, westtrolley, westbuffer) and the phase-one platform and track pieces: * * - north of the line, the concourse: a flagged square at the end of the station way (the path east behind the * platform from the forecourt), the ticket hut and the supply canopy, two banner posts at its west entry, and the * station master; * - the level crossing (the goods-crossing road) from the concourse over the line to the goods yard, a lantern and a * waymarker at each end; * - south of the line, the goods yard: a siding parallel to the line with a buffer stop at each end, Platform Two (the * goods platform, westplatform pieces at deck height along the siding's north side), the crane over the siding, the * maintenance trolley on the rails by the service shelter, a little cargo, and the porter. * * The siding is its own short track in the yard, not joined to the line: the line is one track and the moving train's * width (z 1151-1155) carries nothing but the line. Nothing stands on the rows either side of it east of the platform * (z 1149-1150 and 1156-1157) either: the moving train steps a walker off the line onto them (backend westernTrain.ts). * The trestle (westtrestle) is not placed: the meadow has no gully for it (NEXT_STEPS). */ export declare const WESTERN_HUB_BOX: SouthBox; /** The rows the hub keeps clear beside the line (the train's width and the step-aside rows). */ export declare const WESTERN_HUB_CLEAR_ROWS: { readonly minZ: 1149; readonly maxZ: 1157; }; /** The ground the hub levels to the precinct's height (the concourse and the goods yard). */ export declare const WESTERN_HUB_HEIGHT = 3; /** The concourse: flagstones, level. */ export declare const WESTERN_CONCOURSE: SouthBox; /** The goods yard, levelled; its apron round the siding is stone setts (the rails' tiles are the line's earth bed). */ export declare const WESTERN_GOODS_YARD: SouthBox; export declare const WESTERN_YARD_APRON: SouthBox; /** The siding: one row of westtrack along x, a westbuffer at each end facing the rails. */ export declare const WESTERN_SIDING: { readonly minX: 117; readonly maxX: 153; readonly z: 1166; }; export declare const WESTERN_SIDING_BUFFERS: ReadonlyArray<{ x: number; z: number; facing: 'e' | 'w'; }>; /** Platform Two, the goods platform: westplatform pieces (3 x 3, kerb south to the siding) at deck height, one row of earth before the rails. */ export declare const WESTERN_PLATFORM_TWO: SouthBox; export declare const WESTERN_PLATFORM_TWO_PIECES: readonly SouthPoint[]; /** * The kit's pieces, each on its anchor with its facing letter (the front, Blender -y, to that side). Even pieces follow * the even-footprint rule (the hut's tiles x -1..2 from the anchor, the shelter's the same with its back row blocked, the * trolley's anchor its left tile). */ export declare const WESTERN_HUB_PIECES: ReadonlyArray<{ id: string; style: string; x: number; z: number; }>; /** A little cargo waiting on Platform Two by the crane (cargo kind, like the supply corner's). */ export declare const WESTERN_PLATFORM_TWO_CARGO: ReadonlyArray<{ x: number; z: number; style: string; }>; /** * The hub's two people (NpcKinds stationmaster and stationporter; dwarves drawn like the War Camp's, the frontend's * campDwarf.ts): the station master on the concourse looking down the platform, the porter on Platform Two by the crane; * each potters a tile either way (leash 1), so the porter keeps to the platform's three rows. */ export declare const WESTERN_STATION_MASTER_NAME = "Station Master Hamrik"; export declare const WESTERN_PORTER_NAME = "Porter Dunna"; export declare const WESTERN_STATION_FOLK: ReadonlyArray<{ id: string; kind: 'stationmaster' | 'stationporter'; name: string; x: number; z: number; faceX: number; faceZ: number; leash: number; }>; /** The /tp for the hub: the concourse, looking over the crossing to the goods yard. */ export declare const WESTERN_HUB_STAND: { readonly x: 118; readonly z: 1146; }; /** The /tp stand tile: the forecourt, facing the platform, the cars and the mouth beyond. */ export declare const WESTERN_ENTRANCE_STAND: { readonly x: 51; readonly z: 1140; }; /** Where the discovery zone and the paper label fall (the whole headland south of the fields' shore). */ export declare const WESTERN_ENTRANCE_ZONE_BOX: SouthBox; /** The discovery zone, in landmarks.ts's frame (legacy local rows), listed after the South Fields so the neck is theirs. */ export declare const WESTERN_ENTRANCE_ZONE: { readonly id: "western-entrance"; readonly label: "The Western Entrance"; readonly minX: number; readonly maxX: number; readonly minZ: number; readonly maxZ: number; }; /** The paper map's label, over the platform, in WORLD_MAP_LANDMARKS's frame (legacy world rows; expandedContracts shifts it). */ export declare const WESTERN_ENTRANCE_LANDMARK: { readonly x: 52; readonly z: number; readonly label: "Western Entrance"; }; /** The paper map keeps the headland opaque (surfaceChart.ts protectedFootprints, legacy world rows). */ export declare const WESTERN_ENTRANCE_FOOTPRINT: { readonly id: "western-entrance"; readonly minX: 10; readonly minZ: number; readonly maxX: 205; readonly maxZ: number; }; //# sourceMappingURL=westernEntrance.d.ts.map