示例#1
0
        public override bool Pop(FlightComputer f)
        {
            var burn = f.ActiveCommands.FirstOrDefault(c => c is BurnCommand);

            if (burn != null)
            {
                f.Remove(burn);
            }

            OriginalDelta   = Node.DeltaV.magnitude;
            RemainingDelta  = Node.GetBurnVector(f.Vessel.orbit).magnitude;
            EngineActivated = true;

            double thrustToMass = FlightCore.GetTotalThrust(f.Vessel) / f.Vessel.GetTotalMass();

            if (thrustToMass == 0.0)
            {
                EngineActivated = false;
                RTUtil.ScreenMessage("[Flight Computer]: No engine to carry out the maneuver.");
            }
            else
            {
                RemainingTime = RemainingDelta / thrustToMass;
            }

            return(true);
        }
示例#2
0
 public override bool Pop(FlightComputer f)
 {
     if (Command == null)
     {
         f.Reset();
     }
     else
     {
         f.Remove(Command);
     }
     return false;
 }
示例#3
0
 public override bool Pop(FlightComputer f)
 {
     if (Command == null)
     {
         f.Reset();
     }
     else
     {
         f.Remove(Command);
     }
     return(false);
 }
示例#4
0
        public override bool Pop(FlightComputer f)
        {
            var burn = f.ActiveCommands.FirstOrDefault(c => c is BurnCommand);

            if (burn != null)
            {
                f.Remove(burn);
            }
            OriginalDelta  = Node.DeltaV.magnitude;
            RemainingDelta = Node.GetBurnVector(f.Vessel.orbit).magnitude;
            RemainingTime  = RemainingDelta / (FlightCore.GetTotalThrust(f.Vessel) / f.Vessel.GetTotalMass());
            return(true);
        }
示例#5
0
        public override bool Pop(FlightComputer f)
        {
            var burn = f.ActiveCommands.FirstOrDefault(c => c is BurnCommand);
            if (burn != null) {
                f.Remove (burn);
            }

            OriginalDelta = Node.DeltaV.magnitude;
            RemainingDelta = Node.GetBurnVector(f.Vessel.orbit).magnitude;
            EngineActivated = true;

            double thrustToMass = FlightCore.GetTotalThrust(f.Vessel) / f.Vessel.GetTotalMass();
            if (thrustToMass == 0.0) {
                EngineActivated = false;
                RTUtil.ScreenMessage("[Flight Computer]: No engine to carry out the maneuver.");
            } else {
                RemainingTime = RemainingDelta / thrustToMass;
            }

            return true;
        }
示例#6
0
 public override bool Pop(FlightComputer f)
 {
     var burn = f.ActiveCommands.FirstOrDefault(c => c is BurnCommand);
     if (burn != null) f.Remove(burn);
     OriginalDelta = Node.DeltaV.magnitude;
     RemainingDelta = Node.GetBurnVector(f.Vessel.orbit).magnitude;
     RemainingTime = RemainingDelta / (FlightCore.GetTotalThrust(f.Vessel) / f.Vessel.GetTotalMass());
     return true;
 }
示例#7
0
 public override bool Pop(FlightComputer f)
 {
     f.Remove(Command);
     return false;
 }