示例#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;
        }
示例#2
0
        public override void Finalize(ISpaceCraft spaceCraft)
        {
            spaceCraft.SetThrottle(0);

            foreach (IEngine engine in spaceCraft.Engines)
            {
                engine.Shutdown();
            }
        }
示例#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");
        }
示例#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);
        }
示例#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);
            }
        }
示例#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();
            }
        }
示例#7
0
 public override void Initialize(ISpaceCraft spaceCraft)
 {
     _curentOrientation = spaceCraft.Rotation;
 }
示例#8
0
 public Merlin1D(int id, ISpaceCraft parent, DVector2 offset)
     : base(id, parent, offset, new EngineFlame(id, 100, 1, 0.2))
 {
 }
示例#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);
        }
示例#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))
 {
 }
示例#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;
 }
示例#12
0
 public override void Update(double elapsedTime, ISpaceCraft spaceCraft)
 {
 }
示例#13
0
 public override void Finalize(ISpaceCraft spaceCraft)
 {
 }
示例#14
0
 public override void Finalize(ISpaceCraft spaceCraft)
 {
     spaceCraft.SetRotation(_targetOrientation);
 }
示例#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))
 {
 }
示例#16
0
        public override void Initialize(ISpaceCraft spaceCraft)
        {
            spaceCraft.Stage();

            EventManager.AddMessage("Staging", spaceCraft);
        }
示例#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;
 }
示例#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))
 {
 }
示例#19
0
 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))
 {
 }
示例#20
0
文件: NEXT.cs 项目: stauders/SpaceSim
 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))
 {
 }
示例#21
0
 public override void Update(double elapsedTime, ISpaceCraft spaceCraft)
 {
 }
示例#22
0
 public void RemoveChild(ISpaceCraft child)
 {
     Children.Remove(child);
 }
示例#23
0
 public override void Initialize(ISpaceCraft spaceCraft)
 {
     _currentThrottle = spaceCraft.Throttle;
 }
示例#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);
        }
示例#25
0
 public override void Finalize(ISpaceCraft spaceCraft)
 {
     spaceCraft.SetThrottle(_targetThrottle);
 }
示例#26
0
 public override void Initialize(ISpaceCraft spaceCraft)
 {
     spaceCraft.Stage();
 }
示例#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);
        }
示例#28
0
 public override void Initialize(ISpaceCraft spaceCraft)
 {
     _currentThrottle = spaceCraft.Throttle;
 }
示例#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))
 {
 }
示例#30
0
 public override void Finalize(ISpaceCraft spaceCraft)
 {
     spaceCraft.SetRotation(_targetOrientation);
 }
示例#31
0
 public void SetParent(ISpaceCraft craft)
 {
     Parent = craft;
 }
示例#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))
 {
 }
示例#33
0
 public void AddChild(ISpaceCraft child)
 {
     Children.Add(child);
 }
示例#34
0
        public override void Initialize(ISpaceCraft spaceCraft)
        {
            EventManager.AddMessage("Maneuvering to retrograde", spaceCraft);

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

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

            spaceCraft.SetThrottle(_currentThrottle * (1-shutdownRatio));
        }
示例#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))
 {
 }
示例#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))
 {
 }
示例#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))
 {
 }