Beispiel #1
0
        protected EngineBase(int id, ISpaceCraft parent, DVector2 offset, EngineFlame flame)
        {
            _parent = parent;

            _offsetLength = offset.Length();
            _offsetRotation = offset.Angle() - Math.PI / 2.0;

            _engineFlame = flame;
        }
Beispiel #2
0
        public override void Finalize(ISpaceCraft spaceCraft)
        {
            spaceCraft.SetThrottle(0);

            foreach (IEngine engine in spaceCraft.Engines)
            {
                engine.Shutdown();
            }
        }
Beispiel #3
0
        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");
        }
Beispiel #4
0
        public void AddMessage(string message, ISpaceCraft spaceCraft)
        {
            var eventMessage = new EventMessage
            {
                Message = message,
                StartTime = _elapsedTime,
                SpaceCraft = spaceCraft
            };

            // "Enqueue" new messages
            _eventMessages.Insert(0, eventMessage);
        }
Beispiel #5
0
        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);
            }
        }
Beispiel #6
0
        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();
            }
        }
Beispiel #7
0
 public override void Initialize(ISpaceCraft spaceCraft)
 {
     _curentOrientation = spaceCraft.Rotation;
 }
Beispiel #8
0
 public Merlin1D(int id, ISpaceCraft parent, DVector2 offset)
     : base(id, parent, offset, new EngineFlame(id, 100, 1, 0.2))
 {
 }
Beispiel #9
0
        // 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);
        }
Beispiel #10
0
 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))
 {
 }
Beispiel #11
0
 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;
 }
Beispiel #12
0
 public override void Update(double elapsedTime, ISpaceCraft spaceCraft)
 {
 }
Beispiel #13
0
 public override void Finalize(ISpaceCraft spaceCraft)
 {
 }
Beispiel #14
0
 public override void Finalize(ISpaceCraft spaceCraft)
 {
     spaceCraft.SetRotation(_targetOrientation);
 }
Beispiel #15
0
 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))
 {
 }
Beispiel #16
0
        public override void Initialize(ISpaceCraft spaceCraft)
        {
            spaceCraft.Stage();

            EventManager.AddMessage("Staging", spaceCraft);
        }
Beispiel #17
0
 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;
 }
Beispiel #18
0
 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))
 {
 }
Beispiel #20
0
 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))
 {
 }
Beispiel #21
0
 public override void Update(double elapsedTime, ISpaceCraft spaceCraft)
 {
 }
Beispiel #22
0
 public void RemoveChild(ISpaceCraft child)
 {
     Children.Remove(child);
 }
Beispiel #23
0
 public override void Initialize(ISpaceCraft spaceCraft)
 {
     _currentThrottle = spaceCraft.Throttle;
 }
Beispiel #24
0
        // 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);
        }
Beispiel #25
0
 public override void Finalize(ISpaceCraft spaceCraft)
 {
     spaceCraft.SetThrottle(_targetThrottle);
 }
Beispiel #26
0
 public override void Initialize(ISpaceCraft spaceCraft)
 {
     spaceCraft.Stage();
 }
Beispiel #27
0
        // 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);
        }
Beispiel #28
0
 public override void Initialize(ISpaceCraft spaceCraft)
 {
     _currentThrottle = spaceCraft.Throttle;
 }
Beispiel #29
0
 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))
 {
 }
Beispiel #30
0
 public override void Finalize(ISpaceCraft spaceCraft)
 {
     spaceCraft.SetRotation(_targetOrientation);
 }
Beispiel #31
0
 public void SetParent(ISpaceCraft craft)
 {
     Parent = craft;
 }
Beispiel #32
0
 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))
 {
 }
Beispiel #33
0
 public void AddChild(ISpaceCraft child)
 {
     Children.Add(child);
 }
Beispiel #34
0
        public override void Initialize(ISpaceCraft spaceCraft)
        {
            EventManager.AddMessage("Maneuvering to retrograde", spaceCraft);

            _curentOrientation = spaceCraft.Rotation;
        }
Beispiel #35
0
 public void RemoveChild(ISpaceCraft child)
 {
     Children.Remove(child);
 }
Beispiel #36
0
 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;
 }
Beispiel #37
0
 public override void Finalize(ISpaceCraft spaceCraft)
 {
     spaceCraft.SetThrottle(_throttle);
 }
Beispiel #38
0
 public void AddChild(ISpaceCraft child)
 {
     Children.Add(child);
 }
Beispiel #39
0
        public override void Update(double elapsedTime, ISpaceCraft spaceCraft)
        {
            double timeRatio = elapsedTime - StartTime;

            spaceCraft.SetThrottle(_throttle * timeRatio);
        }
Beispiel #40
0
 public void SetParent(ISpaceCraft craft)
 {
     Parent = craft;
 }
Beispiel #41
0
 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))
 {
 }
Beispiel #42
0
 public override void Initialize(ISpaceCraft spaceCraft)
 {
     _curentOrientation = spaceCraft.Rotation;
 }
Beispiel #43
0
 public override void Finalize(ISpaceCraft spaceCraft)
 {
 }
 public SimpleFlightController(ISpaceCraft spaceCraft)
 {
     SpaceCraft = spaceCraft;
 }
Beispiel #45
0
        // 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);
        }
Beispiel #46
0
        public override void Update(double elapsedTime, ISpaceCraft spaceCraft)
        {
            double shutdownRatio = (elapsedTime - StartTime) * 2;

            spaceCraft.SetThrottle(_currentThrottle * (1-shutdownRatio));
        }
Beispiel #47
0
 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))
 {
 }
Beispiel #48
0
 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))
 {
 }
Beispiel #49
0
 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))
 {
 }