diff --git a/src/data/allEngines.ts b/src/data/allEngines.ts index 497685c..8836161 100644 --- a/src/data/allEngines.ts +++ b/src/data/allEngines.ts @@ -1,6 +1,7 @@ import type Engine from '../types/Engine'; import BE4 from './engines/BE4'; import F1 from './engines/F1'; +import J2 from './engines/J2'; import MERLIN from './engines/MERLIN'; import RAPTOR from './engines/RAPTOR'; import RD180 from './engines/RD180'; @@ -25,7 +26,8 @@ export const getAllEngines = (): Engine[] => { MERLIN, RUTHERFORD, VULCAIN, - VIKING + VIKING, + J2 ]; all.sort((a, b) => a.stats.name.localeCompare(b.stats.name)); diff --git a/src/data/engines/J2.ts b/src/data/engines/J2.ts new file mode 100644 index 0000000..73fdd1c --- /dev/null +++ b/src/data/engines/J2.ts @@ -0,0 +1,37 @@ +import Engine from '../../types/Engine'; +import type EngineStats from '../../types/EngineStats'; +import { Propellant } from '../../types/state/Propellant'; +import { Weight } from '../../types/units/Weight'; +import { ISP } from '../../types/units/ISP'; +import { Size } from '../../types/units/Size'; +import Country from '../../types/state/Country'; +import Status from '../../types/state/Status'; +import EngineCycle from '../../types/state/EngineCycle'; +import Rocket from '../../types/state/Rocket'; + +/** + * The j-2 rocket engine. + * @author cophilot + * @date 2025-1-19 + */ +const J2: EngineStats = { + name: 'J-2', + url: 'https://en.wikipedia.org/wiki/Rocketdyne_J-2', + imageUrl: + 'https://lh3.googleusercontent.com/proxy/Lfj3lErPJKINWSYisxgnafg3LVHKLH4bz2MNS3rzDH_b8nFT7MaQt18OJasu2Nt6UcTYvQW-Hy-K5pX6Xui6euAvicj1iWZEhlZL7oIM4-STSvuzWPkcBRwDNxYLxqBj', + schemanticUrl: + 'https://upload.wikimedia.org/wikipedia/commons/thumb/2/29/J-2_engine_schematic.png/400px-J-2_engine_schematic.png', + country: Country.USA, + status: Status.RETIRED, + firstFlight: '1966', + rockets: [Rocket.SATURN_IB, Rocket.SATURN_V], + propellant: Propellant.HYDRO_LOX, + cycle: EngineCycle.GAS_GENERATOR, + specificImpulseSeaLevel: new ISP(200), + specificImpulseVacuum: new ISP(421), + height: new Size(3.4), + diameter: new Size(2.1), + massDry: new Weight(1788) +}; + +export default new Engine(J2); diff --git a/src/types/state/Rocket.ts b/src/types/state/Rocket.ts index 091689c..e8f17c6 100644 --- a/src/types/state/Rocket.ts +++ b/src/types/state/Rocket.ts @@ -3,6 +3,7 @@ import State from './State'; export default class Rocket extends State { public static readonly SATURN_V: State = new State('Saturn V'); public static readonly SATURN_I: State = new State('Saturn I'); + public static readonly SATURN_IB: State = new State('Saturn IB'); public static readonly ATLAS_III: State = new State('Atlas III'); public static readonly ATLAS_V: State = new State('Atlas V'); public static readonly SLS: State = new State('SLS');