2026-03-29 22:47:14 +02:00

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;
}