//private SpriteSheet _spriteSheet; public Starship2P2P(string craftDirectory, DVector2 position, DVector2 velocity, double payloadMass = 0, double propellantMass = 1000000) : base(craftDirectory, position, velocity, payloadMass, propellantMass, null) { StageOffset = new DVector2(0, 0); Fins = new Fin[2]; Fins[0] = new Fin(this, new DVector2(-1.2, -18.0), new DVector2(2.5, 5), 0, "Textures/Spacecrafts/ITS/Canard2.png", 1.5); Fins[1] = new Fin(this, new DVector2(2.0, 17.2), new DVector2(5.86, 13.0), -Math.PI / 6, "Textures/Spacecrafts/ITS/Fin.png", 3); Engines = new IEngine[9]; for (int i = 0; i < 9; i++) { double engineOffsetX = (i - 4.0) / 4.0; var offset = new DVector2(engineOffsetX * Width * 0.2, Height * 0.4); Engines[i] = new RaptorSL300(i, this, offset); } //_spriteSheet = new SpriteSheet("Textures/Spacecrafts/Its/scaledShip.png", 12, 12); string texturePath = "Its/Starship.png"; string fullPath = Path.Combine("Textures/Spacecrafts", texturePath); this.Texture = new Bitmap(fullPath); this.payloadMass = payloadMass; }
//private SpriteSheet _spriteSheet; public BFR19(string craftDirectory, DVector2 position, DVector2 velocity, double propellantMass = 1900000) : base(craftDirectory, position, velocity, 0, propellantMass, "Its/BFB19.png") { StageOffset = new DVector2(0, 41.0); _gridFins = new[] { new GridFin(this, new DVector2(2.7, -16.1), 6, true), new GridFin(this, new DVector2(-2.7, -16.1), 6, false) }; Engines = new IEngine[19]; for (int i = 0; i < 19; i++) { double engineOffsetX = (i - 9.5) / 15.5; var offset = new DVector2(engineOffsetX * Width * 0.4, Height * 0.48); Engines[i] = new RaptorSL300(i, this, offset); } //_spriteSheet = new SpriteSheet("Textures/Spacecraft/Its/booster.png", 4, 12); string texturePath = "Its/BFB19.png"; string fullPath = Path.Combine("Textures/Spacecrafts", texturePath); this.Texture = new Bitmap(fullPath); }
//private SpriteSheet _spriteSheet; public BFS300(string craftDirectory, DVector2 position, DVector2 velocity, double payloadMass = 0, double propellantMass = 1000000) : base(craftDirectory, position, velocity, payloadMass, propellantMass, null) { StageOffset = new DVector2(0, 0); Fins = new Fin[2]; Fins[0] = new Fin(this, new DVector2(0.2, -22), new DVector2(-2.5, 5), 0, "Textures/Spacecrafts/ITS/Canard.png"); Fins[1] = new Fin(this, new DVector2(2.2, 20.2), new DVector2(5.86, 14.5), -Math.PI / 6); Engines = new IEngine[7]; for (int i = 0; i < 7; i++) { double engineOffsetX = (i - 3.5) / 3.5; var offset = new DVector2(engineOffsetX * Width * 0.2, Height * 0.45); Engines[i] = new RaptorSL300(i, this, offset); } //_spriteSheet = new SpriteSheet("Textures/Spacecrafts/Its/scaledShip.png", 12, 12); string texturePath = "Its/BFS3.png"; string fullPath = Path.Combine("Textures/Spacecrafts", texturePath); this.Texture = new Bitmap(fullPath); this.payloadMass = payloadMass; }
//private SpriteSheet _spriteSheet; public StarHopper(string craftDirectory, DVector2 position, DVector2 velocity, double payloadMass = 0, double propellantMass = 400000) : base(craftDirectory, position, velocity, payloadMass, propellantMass, null) { StageOffset = new DVector2(0, 0); Engines = new IEngine[1]; double engineOffsetX = 0; var offset = new DVector2(engineOffsetX * Width * 0.22, Height * 0.32); Engines[0] = new RaptorSL300(0, this, offset); //_spriteSheet = new SpriteSheet("Textures/Spacecrafts/Its/scaledShip.png", 12, 12); //string texturePath = "Its/StarHopper.png"; string texturePath = "Its/StarHopper2.png"; string fullPath = Path.Combine("Textures/Spacecrafts", texturePath); this.Texture = new Bitmap(fullPath); this.payloadMass = payloadMass; }
//private GridFin[] _gridFins; //private SpriteSheet _spriteSheet; public SuperHeavyMk1(string craftDirectory, DVector2 position, DVector2 velocity, double propellantMass = 4800000) : base(craftDirectory, position, velocity, 0, propellantMass, "Its/SuperHeavy.png") { StageOffset = new DVector2(0, 54); Fins = new Fin[2]; Fins[0] = new Fin(this, new DVector2(-1.2, -18.0), new DVector2(2.5, 5), 0, "Textures/Spacecrafts/ITS/Canard2.png", 1.5); Fins[1] = new Fin(this, new DVector2(2.0, 24.0), new DVector2(5.86, 17.0), -Math.PI / 6, "Textures/Spacecrafts/ITS/Fin.png", 3); Engines = new IEngine[19]; for (int i = 0; i < 7; i++) { double theta = (Math.PI * i) / 7.0; double engineOffsetX = Math.Cos(theta); var offset = new DVector2(engineOffsetX * Width * 0.1, Height * 0.4); Engines[i] = new RaptorSL300(i, this, offset); } for (int i = 0; i < 12; i++) { double theta = (Math.PI * i) / 12.0; double engineOffsetX = Math.Cos(theta); var offset = new DVector2(engineOffsetX * Width * 0.3, Height * 0.4); Engines[i + 7] = new RaptorSL300(i + 7, this, offset); } //_spriteSheet = new SpriteSheet("Textures/Spacecraft/Its/booster.png", 4, 12); string texturePath = "Its/SuperHeavy.png"; string fullPath = Path.Combine("Textures/Spacecrafts", texturePath); this.Texture = new Bitmap(fullPath); }
//private SpriteSheet _spriteSheet; public SuperHeavy(string craftDirectory, DVector2 position, DVector2 velocity, double propellantMass = 3300000, double dryMass = 230000, int engineCount = 28, int thrust1 = 210, int thrust2 = 300) : base(craftDirectory, position, velocity, 0, propellantMass, "Its/SuperHeavy.png") { StageOffset = new DVector2(0, 59.0); double finOffset = -27.0; _gridFins = new[] { new SSGridFin(this, new DVector2(4.0, finOffset), true), new SSGridFin(this, new DVector2(-4.0, finOffset), false) }; Engines = new IEngine[engineCount]; int nGimbal = 7, nFixed = 24; switch (engineCount) { case 28: nGimbal = 8; nFixed = 20; break; } for (int i = 0; i < nGimbal; i++) { double theta = Math.PI / 2.0 + (Math.PI * i) / 3.5; double engineOffsetX = Math.Cos(theta); var offset = new DVector2(engineOffsetX * Width * 0.2, Height * 0.4); switch (thrust1) { case 210: Engines[i] = new RaptorSL300(i, this, offset); break; case 250: Engines[i] = new RaptorSL360(i, this, offset); break; case 300: Engines[i] = new RaptorSL430(i, this, offset); break; default: Engines[i] = new RaptorSL2019(i, this, offset); break; } } if (nFixed == 20) { for (int i = 0; i < nFixed; i++) { double theta = Math.PI / 2.0 + (Math.PI * i) / 6.0; double engineOffsetX = Math.Cos(theta); var offset = new DVector2(engineOffsetX * Width * 0.35, Height * 0.4); Engines[i + 8] = new RaptorSL430(i + 8, this, offset); } } else { if (engineCount >= 13) { for (int i = 0; i < 6; i++) { double theta = Math.PI / 2.0 + (Math.PI * i) / 10.0; double engineOffsetX = Math.Cos(theta); var offset = new DVector2(engineOffsetX * Width * 0.3, Height * 0.4); switch (thrust2) { case 250: Engines[i + 7] = new RaptorSL360(i + 7, this, offset); break; case 300: Engines[i + 7] = new RaptorSL430(i + 7, this, offset); break; default: Engines[i + 7] = new RaptorSL2019(i + 7, this, offset); break; } } } if (engineCount >= 19) { for (int i = 6; i < 12; i++) { double theta = Math.PI / 2.0 + (Math.PI * i) / 6.0; double engineOffsetX = Math.Cos(theta); var offset = new DVector2(engineOffsetX * Width * 0.3, Height * 0.4); switch (thrust2) { case 250: Engines[i + 7] = new RaptorSL360(i + 7, this, offset); break; case 300: Engines[i + 7] = new RaptorSL430(i + 7, this, offset); break; default: Engines[i + 7] = new RaptorSL2019(i + 7, this, offset); break; } } } if (engineCount >= 25) { if (engineCount >= 31) { for (int i = 0; i < 12; i++) { double theta = Math.PI / 2.0 + (Math.PI * i) / 6.0; double engineOffsetX = Math.Cos(theta); var offset = new DVector2(engineOffsetX * Width * 0.35, Height * 0.4); switch (thrust2) { case 250: Engines[i + 19] = new RaptorSL360(i + 19, this, offset); break; case 300: Engines[i + 19] = new RaptorSL430(i + 19, this, offset); break; default: Engines[i + 19] = new RaptorSL2019(i + 19, this, offset); break; } } if (engineCount >= 37) { for (int i = 0; i < 6; i++) { double theta = Math.PI / 2.0 + (Math.PI * i) / 3.0; double engineOffsetX = Math.Cos(theta); var offset = new DVector2(engineOffsetX * Width * 0.4, Height * 0.4); switch (thrust2) { case 250: Engines[i + 31] = new RaptorSL360(i + 31, this, offset); break; case 300: Engines[i + 31] = new RaptorSL430(i + 31, this, offset); break; default: Engines[i + 31] = new RaptorSL2019(i + 31, this, offset); break; } } } } else { for (int i = 0; i < 6; i++) { double theta = Math.PI / 2.0 + (Math.PI * i) / 3.0; double engineOffsetX = Math.Cos(theta); var offset = new DVector2(engineOffsetX * Width * 0.35, Height * 0.4); switch (thrust1) { case 250: Engines[i + 19] = new RaptorSL360(i + 19, this, offset); break; case 300: Engines[i + 19] = new RaptorSL430(i + 19, this, offset); break; default: Engines[i + 19] = new RaptorSL2019(i + 19, this, offset); break; } } } } } //_spriteSheet = new SpriteSheet("Textures/Spacecraft/Its/booster.png", 4, 12); string texturePath = "Its/SuperHeavy.png"; string fullPath = Path.Combine("Textures/Spacecrafts", texturePath); this.Texture = new Bitmap(fullPath); _dryMass = dryMass; }