Beispiel #1
0
        static void PlanesCanFly(IAirline airline, FlightParams flightParams)
        {
            IFlightPreparer preparer = new FlightDirector(flightParams);

            Console.WriteLine("\n\tFlight parameters:\n");
            Console.WriteLine("Flight range: {0}", flightParams.FlightRange);
            Console.WriteLine("Passengers count: {0}", flightParams.PassgengersCount);
            Console.WriteLine("Cargo weight: {0}", flightParams.CargoWeight);
            Console.WriteLine("\n\tPlanes can make this flight:\n");
            var canFlyPlanes = airline.Planes;//.Where(p => preparer.CanFly(p));

            Console.WriteLine("-------------------------------");
            foreach (var plane in canFlyPlanes)
            {
                Console.WriteLine(plane.ToString());
                if (plane.PrepareForFlight(preparer))
                {
                    Console.WriteLine("Flight begins..");
                    string flightMessage;
                    plane.Flight(out flightMessage);
                    Console.WriteLine(flightMessage);
                    Console.WriteLine();
                }
                else
                {
                    Console.WriteLine(preparer.LastResult);
                    Console.WriteLine();
                }
                Console.WriteLine("-------------------------------");
            }
        }
Beispiel #2
0
        public void Init()
        {
            _simulationProperties = new Mock <ISimulationProperties>();
            _airplaneManager      = new Mock <IAirplaneManager>();
            _router = new Mock <IRouter>();

            _flightDirector = new FlightDirector(_airplaneManager.Object, _router.Object, _simulationProperties.Object);
        }
Beispiel #3
0
            public Spaceship(IMyGridTerminalSystem system, IMyIntergridCommunicationSystem igc)
            {
                this.system = system;
                this.igc    = igc;

                cpu = FindRunningPB(system);

                control   = FindBlockOfType <IMyRemoteControl>(system, this, Settings.TAG);
                connector = FindBlockOfType <IMyShipConnector>(system, this, Settings.TAG);
                debug     = FindBlockOfType <IMyTextPanel>(system, this, Settings.TAG);
                if (debug == null)
                {
                    IMyCockpit cockpit = FindBlockOfType <IMyCockpit>(system, this, Settings.TAG);
                    if (cockpit.SurfaceCount > 0)
                    {
                        debug = cockpit.GetSurface(0);
                    }
                }
                debug.Font        = "Monospace";
                debug.ContentType = ContentType.TEXT_AND_IMAGE;

                /*
                 *  screen = cockpit.GetSurface(0);
                 *  screen.ContentType = ContentType.SCRIPT;
                 *  MySpriteDrawFrame frame = screen.DrawFrame();
                 *
                 *
                 *  frame.Add(new MySprite(SpriteType.TEXTURE, "SquareSimple", new Vector2(0, 0), new Vector2(512, 512), Color.Black));
                 *  frame.Add(MySprite.CreateText("Ftiaxe Me!!!", "DEBUG", Color.White));
                 *  frame.Dispose();
                 */

                listener = igc.RegisterBroadcastListener(Settings.COMM_CHANNEL);
                listener = igc.RegisterBroadcastListener(Settings.COMM_CHANNEL);
                listener.SetMessageCallback(Settings.COMM_CHANNEL);
                thrusters = new ThrustersManager(this, control, system);

                autopilot = new Autopilot(this, control, FindBlockOfType <IMyGyro>(system, this));
                cas       = new CollisionAvoidanceSystem(this);
                fd        = new FlightDirector(this);

                if (connector.Status == MyShipConnectorStatus.Connected)
                {
                    flags = SpaceshipFlags.Dock;
                }
                else
                {
                    flags = SpaceshipFlags.Idle;
                }
            }