コード例 #1
0
ファイル: EngineBase.cs プロジェクト: rdancer/SpaceSim
        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
ファイル: ShutdownCommand.cs プロジェクト: rdancer/SpaceSim
        public override void Finalize(ISpaceCraft spaceCraft)
        {
            spaceCraft.SetThrottle(0);

            foreach (IEngine engine in spaceCraft.Engines)
            {
                engine.Shutdown();
            }
        }
コード例 #3
0
ファイル: LandingLeg.cs プロジェクト: zlynn1990/SpaceSim
        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
ファイル: EventManager.cs プロジェクト: zlynn1990/SpaceSim
        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
ファイル: CommandController.cs プロジェクト: rdancer/SpaceSim
        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
ファイル: IgnitionCommand.cs プロジェクト: rdancer/SpaceSim
        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
ファイル: OrientCommand.cs プロジェクト: rdancer/SpaceSim
 public override void Initialize(ISpaceCraft spaceCraft)
 {
     _curentOrientation = spaceCraft.Rotation;
 }
コード例 #8
0
ファイル: Merlin1D.cs プロジェクト: rdancer/SpaceSim
 public Merlin1D(int id, ISpaceCraft parent, DVector2 offset)
     : base(id, parent, offset, new EngineFlame(id, 100, 1, 0.2))
 {
 }
コード例 #9
0
ファイル: ThrottleCommand.cs プロジェクト: rdancer/SpaceSim
        // 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
ファイル: Merlin1D.cs プロジェクト: zlynn1990/SpaceSim
 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
ファイル: StageCommand.cs プロジェクト: rdancer/SpaceSim
 public override void Update(double elapsedTime, ISpaceCraft spaceCraft)
 {
 }
コード例 #13
0
 public override void Finalize(ISpaceCraft spaceCraft)
 {
 }
コード例 #14
0
ファイル: OrientCommand.cs プロジェクト: rdancer/SpaceSim
 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
ファイル: SuperDraco.cs プロジェクト: tdandrade/SpaceSim
 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
ファイル: Merlin1D.cs プロジェクト: radamforspace/SpaceSim
 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
ファイル: SpaceCraftBase.cs プロジェクト: rdancer/SpaceSim
 public void RemoveChild(ISpaceCraft child)
 {
     Children.Remove(child);
 }
コード例 #23
0
ファイル: ThrottleCommand.cs プロジェクト: rdancer/SpaceSim
 public override void Initialize(ISpaceCraft spaceCraft)
 {
     _currentThrottle = spaceCraft.Throttle;
 }
コード例 #24
0
ファイル: OrientCommand.cs プロジェクト: rdancer/SpaceSim
        // 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
ファイル: ThrottleCommand.cs プロジェクト: rdancer/SpaceSim
 public override void Finalize(ISpaceCraft spaceCraft)
 {
     spaceCraft.SetThrottle(_targetThrottle);
 }
コード例 #26
0
ファイル: StageCommand.cs プロジェクト: rdancer/SpaceSim
 public override void Initialize(ISpaceCraft spaceCraft)
 {
     spaceCraft.Stage();
 }
コード例 #27
0
ファイル: ThrottleCommand.cs プロジェクト: rdancer/SpaceSim
        // 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
ファイル: ThrottleCommand.cs プロジェクト: rdancer/SpaceSim
 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
ファイル: OrientCommand.cs プロジェクト: rdancer/SpaceSim
 public override void Finalize(ISpaceCraft spaceCraft)
 {
     spaceCraft.SetRotation(_targetOrientation);
 }
コード例 #31
0
ファイル: SpaceCraftBase.cs プロジェクト: LujunWeng/SpaceSim
 public void SetParent(ISpaceCraft craft)
 {
     Parent = craft;
 }
コード例 #32
0
ファイル: Merlin1DVac.cs プロジェクト: zlynn1990/SpaceSim
 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
ファイル: SpaceCraftBase.cs プロジェクト: LujunWeng/SpaceSim
 public void AddChild(ISpaceCraft child)
 {
     Children.Add(child);
 }
コード例 #34
0
ファイル: RetrogradeCommand.cs プロジェクト: ap0r/SpaceSim
        public override void Initialize(ISpaceCraft spaceCraft)
        {
            EventManager.AddMessage("Maneuvering to retrograde", spaceCraft);

            _curentOrientation = spaceCraft.Rotation;
        }
コード例 #35
0
ファイル: SpaceCraftBase.cs プロジェクト: LujunWeng/SpaceSim
 public void RemoveChild(ISpaceCraft child)
 {
     Children.Remove(child);
 }
コード例 #36
0
ファイル: SuperDraco.cs プロジェクト: zlynn1990/SpaceSim
 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
ファイル: IgnitionCommand.cs プロジェクト: rdancer/SpaceSim
 public override void Finalize(ISpaceCraft spaceCraft)
 {
     spaceCraft.SetThrottle(_throttle);
 }
コード例 #38
0
ファイル: SpaceCraftBase.cs プロジェクト: rdancer/SpaceSim
 public void AddChild(ISpaceCraft child)
 {
     Children.Add(child);
 }
コード例 #39
0
ファイル: IgnitionCommand.cs プロジェクト: rdancer/SpaceSim
        public override void Update(double elapsedTime, ISpaceCraft spaceCraft)
        {
            double timeRatio = elapsedTime - StartTime;

            spaceCraft.SetThrottle(_throttle * timeRatio);
        }
コード例 #40
0
ファイル: SpaceCraftBase.cs プロジェクト: rdancer/SpaceSim
 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
ファイル: OrientCommand.cs プロジェクト: rdancer/SpaceSim
 public override void Initialize(ISpaceCraft spaceCraft)
 {
     _curentOrientation = spaceCraft.Rotation;
 }
コード例 #43
0
ファイル: StageCommand.cs プロジェクト: rdancer/SpaceSim
 public override void Finalize(ISpaceCraft spaceCraft)
 {
 }
コード例 #44
0
 public SimpleFlightController(ISpaceCraft spaceCraft)
 {
     SpaceCraft = spaceCraft;
 }
コード例 #45
0
ファイル: OrientCommand.cs プロジェクト: rdancer/SpaceSim
        // 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
ファイル: ShutdownCommand.cs プロジェクト: rdancer/SpaceSim
        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
ファイル: RaptorVac.cs プロジェクト: zlynn1990/SpaceSim
 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
ファイル: Star48.cs プロジェクト: stauders/SpaceSim
 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))
 {
 }