protected EngineBase(int id, ISpaceCraft parent, DVector2 offset, EngineFlame flame) { _parent = parent; _offsetLength = offset.Length(); _offsetRotation = offset.Angle() - Math.PI / 2.0; _engineFlame = flame; }
public override void Finalize(ISpaceCraft spaceCraft) { spaceCraft.SetThrottle(0); foreach (IEngine engine in spaceCraft.Engines) { engine.Shutdown(); } }
public LandingLeg(ISpaceCraft parent, DVector2 offset, bool isLeft) { _parent = parent; _isLeft = isLeft; _offsetLength = offset.Length(); _offsetRotation = _offsetRotation = offset.Angle() - Math.PI/2.0; _texture = isLeft ? new Bitmap("Textures/landingLegLeft.png") : new Bitmap("Textures/landingLegRight.png"); }
public void AddMessage(string message, ISpaceCraft spaceCraft) { var eventMessage = new EventMessage { Message = message, StartTime = _elapsedTime, SpaceCraft = spaceCraft }; // "Enqueue" new messages _eventMessages.Insert(0, eventMessage); }
public CommandController(List<CommandBase> commands, ISpaceCraft spaceCraft) : base(spaceCraft) { _commands = commands; _queuedCommands = new List<CommandBase>(); _activeCommands = new List<CommandBase>(); foreach (CommandBase command in _commands) { _queuedCommands.Add(command); } }
public override void Initialize(ISpaceCraft spaceCraft) { foreach (int engineId in _engineIds) { if (engineId >= spaceCraft.Engines.Length) { throw new Exception("The spacecraft does not contain engine id " + engineId + "!"); } IEngine engine = spaceCraft.Engines[engineId]; engine.Startup(); } }
public override void Initialize(ISpaceCraft spaceCraft) { _curentOrientation = spaceCraft.Rotation; }
public Merlin1D(int id, ISpaceCraft parent, DVector2 offset) : base(id, parent, offset, new EngineFlame(id, 100, 1, 0.2)) { }
// Interpolate between current and target throttle over the duration public override void Update(double elapsedTime, ISpaceCraft spaceCraft) { double ratio = (elapsedTime - StartTime) / Duration; spaceCraft.SetThrottle(_currentThrottle * (1 - ratio) + _targetThrottle * ratio); }
public Merlin1D(int id, ISpaceCraft parent, DVector2 offset) : base(parent, offset, new EngineFlame(id, Color.FromArgb(200, 255, 255, 0), 100, 2, 0.2, 0.6, 0.1)) { }
public AJ10(int id, ISpaceCraft parent, DVector2 offset, double angle) : base(parent, offset, new EngineFlame(id, Color.FromArgb(63, 255, 255, 159), 50, 2, 1.0, 1.2, 0.1, angle)) { _angle = angle; }
public override void Update(double elapsedTime, ISpaceCraft spaceCraft) { }
public override void Finalize(ISpaceCraft spaceCraft) { }
public override void Finalize(ISpaceCraft spaceCraft) { spaceCraft.SetRotation(_targetOrientation); }
public F1(int id, ISpaceCraft parent, DVector2 offset) : base(parent, offset, new EngineFlame(id, Color.FromArgb(95, 255, 255, 191), 100, 2, 0.2, 0.8, 0.2)) { }
public override void Initialize(ISpaceCraft spaceCraft) { spaceCraft.Stage(); EventManager.AddMessage("Staging", spaceCraft); }
public SuperDraco(int id, ISpaceCraft parent, DVector2 offset, double angle) : base(parent, offset, new EngineFlame(id, Color.Yellow, 200, 4, 0.1, 0.15, 0.02, angle)) { _angle = angle; }
public Merlin1D(int id, ISpaceCraft parent, DVector2 offset) : base(parent, offset, new EngineFlame(id, Color.FromArgb(63, 255, 255, 191), 30, 2, 0.2, 0.8, 0.1)) { }
public RaptorVac2016(int id, ISpaceCraft parent, DVector2 offset) : base(parent, offset, new EngineFlame(id, Color.FromArgb(63, 159, 227, 255), 100, 2, 0.2, 0.6, 0.1)) { }
public NEXT(int id, ISpaceCraft parent, DVector2 offset) : base(parent, offset, new EngineFlame(id, Color.FromArgb(63, 121, 222, 230), 100, 2, 0.2, 0.2, 0.05)) { }
public void RemoveChild(ISpaceCraft child) { Children.Remove(child); }
public override void Initialize(ISpaceCraft spaceCraft) { _currentThrottle = spaceCraft.Throttle; }
// Interpolate between current and target orientation over the duration public override void Update(double elapsedTime, ISpaceCraft spaceCraft) { double ratio = (elapsedTime - StartTime) / Duration; spaceCraft.SetRotation(_curentOrientation * (1 - ratio) + _targetOrientation * ratio); }
public override void Finalize(ISpaceCraft spaceCraft) { spaceCraft.SetThrottle(_targetThrottle); }
public override void Initialize(ISpaceCraft spaceCraft) { spaceCraft.Stage(); }
public BE4(int id, ISpaceCraft parent, DVector2 offset) : base(parent, offset, new EngineFlame(id, Color.FromArgb(63, 207, 239, 255), 100, 2, 0.2, 0.6, 0.1)) { }
public void SetParent(ISpaceCraft craft) { Parent = craft; }
public Merlin1DVac(ISpaceCraft parent, DVector2 offset) : base(parent, offset, new EngineFlame(0, Color.FromArgb(200, 255, 255, 0), 500, 3, 0.5, 0.5, 0.1)) { }
public void AddChild(ISpaceCraft child) { Children.Add(child); }
public override void Initialize(ISpaceCraft spaceCraft) { EventManager.AddMessage("Maneuvering to retrograde", spaceCraft); _curentOrientation = spaceCraft.Rotation; }
public override void Finalize(ISpaceCraft spaceCraft) { spaceCraft.SetThrottle(_throttle); }
public override void Update(double elapsedTime, ISpaceCraft spaceCraft) { double timeRatio = elapsedTime - StartTime; spaceCraft.SetThrottle(_throttle * timeRatio); }
public J2(int id, ISpaceCraft parent, DVector2 offset) : base(parent, offset, new EngineFlame(id, Color.FromArgb(63, 221, 192, 220), 100, 2, 1.0, 1.2, 0.16)) { }
public SimpleFlightController(ISpaceCraft spaceCraft) { SpaceCraft = spaceCraft; }
public override void Update(double elapsedTime, ISpaceCraft spaceCraft) { double shutdownRatio = (elapsedTime - StartTime) * 2; spaceCraft.SetThrottle(_currentThrottle * (1-shutdownRatio)); }
public RaptorSL430(int id, ISpaceCraft parent, DVector2 offset) : base(parent, offset, new EngineFlame(id, Color.FromArgb(30, 209, 173, 199), 50, 2, 0.2, 0.6, 0.15)) { }
public RaptorVac(int id, ISpaceCraft parent, DVector2 offset) : base(parent, offset, new EngineFlame(id, Color.FromArgb(255, 159, 227, 255), 100, 2, 0.2, 0.6, 0.1)) { }
public Star48(int id, ISpaceCraft parent, DVector2 offset) : base(parent, offset, new EngineFlame(id, Color.FromArgb(255, 255, 255, 255), 250, 2, 0.3, 0.8, 0.2)) { }