130 lines
2.9 KiB
TypeScript
130 lines
2.9 KiB
TypeScript
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<string, Body>([
|
|
[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;
|
|
} |