diff --git a/interface/constants/Pieces.ts b/interface/constants/Pieces.ts index 2eb8c2e..fc12356 100644 --- a/interface/constants/Pieces.ts +++ b/interface/constants/Pieces.ts @@ -160,6 +160,206 @@ const STRAIGHT_TRACK_CHANGE: Piece = new Piece({ }, ], }); +const DEAD_END_STATION_ROAD: Piece = new Piece({ + useInternalTracks: true, + internalNodeType: InternalNodeType.STATION, + trackDefinitions: [ + { + startPoint: Direction.EAST, + type: TrackType.RAIL, + }, + ], +}); +const T_JUNCTION_WITH_RAIL_AT_CENTER: Piece = new Piece({ + useInternalTracks: true, + internalNodeType: InternalNodeType.STATION, + trackDefinitions: [ + { + startPoint: Direction.EAST, + type: TrackType.ROAD, + }, + { + startPoint: Direction.SOUTH, + type: TrackType.RAIL, + }, + { + startPoint: Direction.WEST, + type: TrackType.ROAD, + }, + ], +}); +const FOUR_WAY_PERPENDICULAR_CROSSING: Piece = new Piece({ + useInternalTracks: true, + internalNodeType: InternalNodeType.STATION, + trackDefinitions: [ + { + startPoint: Direction.NORTH, + type: TrackType.RAIL, + }, + { + startPoint: Direction.SOUTH, + type: TrackType.RAIL, + }, + { + startPoint: Direction.WEST, + type: TrackType.ROAD, + }, + { + startPoint: Direction.EAST, + type: TrackType.ROAD, + }, + ], +}); +const FOUR_WAY_WITH_ONE_RAIL: Piece = new Piece({ + useInternalTracks: true, + internalNodeType: InternalNodeType.STATION, + trackDefinitions: [ + { + startPoint: Direction.NORTH, + type: TrackType.ROAD, + }, + { + startPoint: Direction.EAST, + type: TrackType.ROAD, + }, + { + startPoint: Direction.SOUTH, + type: TrackType.RAIL, + }, + { + startPoint: Direction.WEST, + type: TrackType.ROAD, + }, + ], +}); + +const FOUR_WAY_TURNING_CROSSING: Piece = new Piece({ + useInternalTracks: true, + internalNodeType: InternalNodeType.STATION, + trackDefinitions: [ + { + startPoint: Direction.NORTH, + type: TrackType.ROAD, + }, + { + startPoint: Direction.EAST, + type: TrackType.ROAD, + }, + { + startPoint: Direction.SOUTH, + type: TrackType.RAIL, + }, + { + startPoint: Direction.WEST, + type: TrackType.RAIL, + }, + ], +}); +const LEVEL_CROSSING: Piece = new Piece({ + useInternalTracks: false, + trackDefinitions: [ + { + startPoint: Direction.NORTH, + endPoint: Direction.SOUTH, + type: TrackType.RAIL, + }, + { + startPoint: Direction.EAST, + endPoint: Direction.WEST, + type: TrackType.ROAD, + }, + ], +}); +const STRAIGHT_ROAD: Piece = new Piece({ + useInternalTracks: false, + trackDefinitions: [ + { + startPoint: Direction.EAST, + endPoint: Direction.WEST, + type: TrackType.ROAD, + }, + ], +}); +const T_JUNCTION_ROAD: Piece = new Piece({ + useInternalTracks: true, + internalNodeType: InternalNodeType.NONE, + trackDefinitions: [ + { + startPoint: Direction.EAST, + type: TrackType.ROAD, + }, + { + startPoint: Direction.SOUTH, + type: TrackType.ROAD, + }, + { + startPoint: Direction.WEST, + type: TrackType.RAIL, + }, + ], +}); +const FOUR_WAY_CROSS_ROAD: Piece = new Piece({ + useInternalTracks: true, + internalNodeType: InternalNodeType.NONE, + trackDefinitions: [ + { + startPoint: Direction.NORTH, + type: TrackType.ROAD, + }, + { + startPoint: Direction.EAST, + type: TrackType.ROAD, + }, + { + startPoint: Direction.SOUTH, + type: TrackType.ROAD, + }, + { + startPoint: Direction.WEST, + type: TrackType.RAIL, + }, + ], +}); +const DOUBLE_TURN_ROAD: Piece = new Piece({ + useInternalTracks: false, + trackDefinitions: [ + { + startPoint: Direction.NORTH, + endPoint: Direction.WEST, + type: TrackType.ROAD, + }, + { + startPoint: Direction.EAST, + endPoint: Direction.SOUTH, + type: TrackType.ROAD, + }, + ], +}); +const TURN_ROAD: Piece = new Piece({ + useInternalTracks: false, + trackDefinitions: [ + { + startPoint: Direction.NORTH, + endPoint: Direction.WEST, + type: TrackType.ROAD, + }, + ], +}); +const DOUBLE_TURN_RAIL: Piece = new Piece({ + useInternalTracks: false, + trackDefinitions: [ + { + startPoint: Direction.NORTH, + endPoint: Direction.WEST, + type: TrackType.RAIL, + }, + { + startPoint: Direction.EAST, + endPoint: Direction.SOUTH, + type: TrackType.RAIL, + }, + ], +}); export enum PieceId { P01 = "P01", @@ -197,4 +397,16 @@ export const pieceMap: Record = { [PieceId.P08]: FOUR_WAY_WITH_ONE_ROAD, [PieceId.P09]: T_JUNCTION_WITH_ROAD_AT_CENTER, [PieceId.P10]: STRAIGHT_TRACK_CHANGE, + [PieceId.P11]: DEAD_END_STATION_ROAD, + [PieceId.P12]: T_JUNCTION_WITH_RAIL_AT_CENTER, + [PieceId.P13]: FOUR_WAY_PERPENDICULAR_CROSSING, + [PieceId.P14]: FOUR_WAY_WITH_ONE_RAIL, + [PieceId.P15]: FOUR_WAY_TURNING_CROSSING, + [PieceId.P16]: LEVEL_CROSSING, + [PieceId.P17]: STRAIGHT_ROAD, + [PieceId.P18]: T_JUNCTION_ROAD, + [PieceId.P19]: FOUR_WAY_CROSS_ROAD, + [PieceId.P20]: DOUBLE_TURN_ROAD, + [PieceId.P21]: TURN_ROAD, + [PieceId.P22]: DOUBLE_TURN_RAIL, };