export interface Body { planetName: string, type: "star" | "planet" | "moon", radius: number, gravitationalParameter: number, rotationPeriod: number, sphereOfInfluence: number, closestSafeDistance: number, initialMeridianLongitude: number } export const Kerbol: Body = { planetName: "Kerbol", type: "star", radius: 261600000, gravitationalParameter: 1.1723328e18, rotationPeriod: 432000, sphereOfInfluence: 1e99, closestSafeDistance: 261600000 + 600000, initialMeridianLongitude: 0 }; export const Moho: Body = { planetName: "Moho", type: "planet", radius: 250000, gravitationalParameter: 1.6860938e11, rotationPeriod: 1210000, sphereOfInfluence: 9646663, closestSafeDistance: 257000, initialMeridianLongitude: 0 }; export const Eve: Body = { planetName: "Eve", type: "planet", radius: 700000, gravitationalParameter: 8.1717302e12, rotationPeriod: 80500, sphereOfInfluence: 85109365, closestSafeDistance: 790000, initialMeridianLongitude: 0 }; export const Gilly: Body = { planetName: "Gilly", type: "moon", radius: 13000, gravitationalParameter: 8289449.8, rotationPeriod: 28255, sphereOfInfluence: 126123.27, closestSafeDistance: 19400, initialMeridianLongitude: 0.0859373 }; export const Kerbin: Body = { planetName: "Kerbin", type: "planet", radius: 600000, gravitationalParameter: 3.5316000e12, rotationPeriod: 21549.425, sphereOfInfluence: 84159286, closestSafeDistance: 670000, initialMeridianLongitude: 1.571261023 }; export const Mun: Body = { planetName: "Mun", type: "moon", radius: 200000, gravitationalParameter: 6.5138398e10, rotationPeriod: 138984.38, sphereOfInfluence: 2429559.1, closestSafeDistance: 207500, initialMeridianLongitude: 4.0145103174219114 }; export const Minmus: Body = { planetName: "Minmus", type: "moon", radius: 60000, gravitationalParameter: 1.7658000e9, rotationPeriod: 40400, sphereOfInfluence: 2247428.4, closestSafeDistance: 66000, initialMeridianLongitude: 4.014486824 }; export const Duna: Body = { planetName: "Duna", type: "planet", radius: 320000, gravitationalParameter: 3.0136321e11, rotationPeriod: 65517.859, sphereOfInfluence: 47921949, closestSafeDistance: 50000, initialMeridianLongitude: 0 // TODO: Fill in later } export const Ike: Body = { planetName: "Ike", type: "moon", radius: 130000, gravitationalParameter: 1.8568369e10, rotationPeriod: 65517.852, sphereOfInfluence: 1049598.9, closestSafeDistance: 12900, initialMeridianLongitude: 0 // TODO: Fill in later } export const PlanetList = new Map([ [Kerbol.planetName, Kerbol], [Moho.planetName, Moho], [Eve.planetName, Eve], [Gilly.planetName, Gilly], [Kerbin.planetName, Kerbin], [Mun.planetName, Mun], [Minmus.planetName, Minmus], [Duna.planetName, Duna], [Ike.planetName, Ike] ]); export function getPlanetByName(name: string): Body { let foundBody = PlanetList.get(name); if (!foundBody) { foundBody = Kerbin; } return foundBody; }