'use strict'; import {Color} from './js/colorlib.js'; import {SpriteBounds} from './js/spritelib.js'; export const gradeColors = { grade_flat: '#fff', grade_0: '#f4f7cd', grade_1: '#f8ff99', grade_2: '#edfc1b', grade_3: '#fcb520', grade_4: '#f07837', grade_5: '#e66441', grade_6: '#ce3f57', grade_7: '#c33577', grade_8: '#a3008d', grade_9: '#690097', } export const speedGradient = [ new Color('#370065'), new Color('#79146e'), new Color('#d53354'), new Color('#fa8256'), new Color('#fbffb2'), ] export const altitudeGradient = [ new Color('#340042'), new Color('#235f7b'), new Color('#51c34e'), new Color('#fce51e'), ] export const sidingUsageMeanings = { I:'Inbound', O:'Outbound', L:'Loading', P:'Locomotive Parking', S:'Car Storage', LP:'Passenger Transfer', SP:'Passenger Car Storage', D:'Service & Repair', } export const bezierGradeResolution = 80; export const bezierLengthResolution = 80; export const bezierCurvatureResolution = 80; export const scrollZoomFactor = 1.25; export const buttonZoomFactor = 1.5; export const minZoomLevel = 0.01; export const maxZoomLevel = 60; export const defaultMapPadding = 500; export const maxZoneLength = 700; /** How many pixels around the view is still considered "visible", beyond this and items are culled. */ export const viewCullMargin = 60; export const routing = { maxSpeed: 120, maxGrade: 6, gradePenalty: 0.04, minGradeFactor: 0.35, snapSearchSteps: 48, polylineStepMeters: 25, markerRadius: 10, maxSnapDistance: 1200, assumedUnpostedSpeed: 120, unpostedSpeedLimit: 90, tightCurveRadius: 170, tightCurveSpeed: 40, accel: 0.35, decel: 0.5, }; export const tooltipHitzone = { default: {radius:12}, junction: {width:24, height:35}, }; export const spriteBounds = { unknown: new SpriteBounds(0,0,20,20), junction: new SpriteBounds(0,20,20,20), gradeArrow: new SpriteBounds(20,20,20,20), gradeArrowDown: new SpriteBounds(40,20,20,20), speed_1: new SpriteBounds(20,40,20,20), speed_2: new SpriteBounds(40,40,20,20), speed_3: new SpriteBounds(60,40,20,20), speed_4: new SpriteBounds(20,60,20,20), speed_5: new SpriteBounds(40,60,20,20), speed_6: new SpriteBounds(60,60,20,20), speed_7: new SpriteBounds(80,60,20,20), speed_8: new SpriteBounds(100,60,20,20), speed_9: new SpriteBounds(120,60,20,20), speed_10: new SpriteBounds(140,60,20,20), speed_12: new SpriteBounds(160,60,20,20), office: new SpriteBounds(0,80,20,20), office_military: new SpriteBounds(20,80,20,20), office_museum: new SpriteBounds(40,80,20,20), water: new SpriteBounds(0,100,20,20), coal: new SpriteBounds(20,100,20,20), landmark: new SpriteBounds(40,100,20,20), shop: new SpriteBounds(60,100,20,20), garage: new SpriteBounds(80,100,20,20), demonstrator: new SpriteBounds(100,100,20,20), service: new SpriteBounds(0,120,20,20), service_repair: new SpriteBounds(20,120,20,20), service_diesel: new SpriteBounds(40,120,20,20), service_charger: new SpriteBounds(60,120,20,20), player: new SpriteBounds(20,0,20,20), }