示例#1
0
        public HeavierThanAirAircraft AddTurboshaftEngines(HeavierThanAirAircraft aircraft)
        {
            TurbineEngineFactory turbineEngineFactory = TurbineEngineFactory.GeTurbineEngineFactory();

            Turboshaft turboshaft = turbineEngineFactory.TryMakeTurboshaft(1, 1, 2, new Generator(),
                                                                           null, 100, 888, 8,
                                                                           new List <Propellant> {
                new Propellant(PropellantsEnum.Jet_A)
            }, new List <Oxidiser> {
                new Oxidiser(OxidisersEnum.GOX)
            }, "no manuf", "model 1",
                                                                           "88888888", 2000, 3, 0, OnOff.Stopped, false);

            aircraft.Engines.Add(turboshaft);
            aircraft.Engines.Add(turbineEngineFactory.TryMakeTurboshaft(1, 1, 2, new Generator(), null, 100, 888, 8,
                                                                        new List <Propellant> {
                new Propellant(PropellantsEnum.Jet_A)
            }, new List <Oxidiser> {
                new Oxidiser(OxidisersEnum.GOX)
            }, "no manuf", "model 1",
                                                                        "99999999", 2000, 3, 0, OnOff.Stopped, false));
            return(aircraft);
        }
示例#2
0
        //public bool TryMakeTurboshaft(float gearingR, float maxtorque, uint numberofshafts,
        //    Dictionary<Generator, double> gens,
        //    List<Spool> spools, int egt, int isp, int numberofcycles, List<Propellants> fueList,
        //    List<Oxidisers> oxidisers, string manuf, string model, string serialnumber, float maxpower,
        //    float operatingtime, float fuelflow, OnOff stat, out Turboshaft incomingTurboshaft, bool hasreverse = true, string parentvehicleID = null)
        //{
        //    try
        //    {
        //        Turboshaft turboshaft = MakeTurboshaft(gearingR, maxtorque, numberofshafts, gens, spools, egt, isp,
        //            numberofcycles, fueList,
        //            oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse,
        //            parentvehicleID);

        //        incomingTurboshaft = turboshaft;
        //        return true;
        //    }
        //    catch (ArgumentNullException argumentNullException)
        //    {
        //        Console.WriteLine(argumentNullException.Message);
        //        incomingTurboshaft = null;
        //        return false;
        //    }
        //    catch (ArgumentException argumentException)
        //    {
        //        Console.WriteLine(argumentException.Message);
        //        incomingTurboshaft = null;
        //        return false;
        //    }
        //    catch (Exception e)
        //    {
        //        Console.WriteLine(e.Message);
        //        incomingTurboshaft = null;
        //        return false;
        //    }
        //}


        public Turboshaft TryMakeTurboshaft(float gearingR, float maxtorque, int numberofshafts, Generator gen,
                                            List <Spool> spools, int egt, int isp, int numberofcycles, List <Propellant> fueList,
                                            List <Oxidiser> oxidisers, string manuf, string model, string serialnumber, float maxpower,
                                            float operatingtime, float fuelflow, OnOff stat, bool hasreverse = true, PoweredAircraft parentvehicle = null)
        {
            Turboshaft turboshaft = new Turboshaft();

            try
            {
                turboshaft = MakeTurboshaft(gearingR, maxtorque, numberofshafts, gen, spools, egt, isp,
                                            numberofcycles, fueList,
                                            oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse,
                                            parentvehicle);
                return(turboshaft);
            }
            catch (ArgumentNullException argumentNullException)
            {
                Console.WriteLine(argumentNullException.Message);
                switch (argumentNullException.ParamName)
                {
                case nameof(spools):
                    spools     = new List <Spool>();
                    turboshaft = TryMakeTurboshaft(gearingR, maxtorque, numberofshafts, gen, spools, egt, isp,
                                                   numberofcycles, fueList,
                                                   oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse,
                                                   parentvehicle);
                    break;

                case nameof(serialnumber):
                    serialnumber = "no serial number specified";
                    turboshaft   = TryMakeTurboshaft(gearingR, maxtorque, numberofshafts, gen, spools, egt, isp,
                                                     numberofcycles, fueList,
                                                     oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse,
                                                     parentvehicle);
                    break;

                case nameof(fueList):
                    fueList    = new List <Propellant>();
                    turboshaft = TryMakeTurboshaft(gearingR, maxtorque, numberofshafts, gen, spools, egt, isp,
                                                   numberofcycles, fueList,
                                                   oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse,
                                                   parentvehicle);
                    break;

                case nameof(oxidisers):
                    oxidisers  = new List <Oxidiser>();
                    turboshaft = TryMakeTurboshaft(gearingR, maxtorque, numberofshafts, gen, spools, egt, isp,
                                                   numberofcycles, fueList,
                                                   oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse,
                                                   parentvehicle);
                    break;
                }
            }
            catch (ArgumentException argumentException)
            {
                Console.WriteLine(argumentException.Message);
                switch (argumentException.ParamName)
                {
                case nameof(numberofshafts):
                    numberofshafts = 1;
                    turboshaft     = TryMakeTurboshaft(gearingR, maxtorque, numberofshafts, gen, spools, egt, isp,
                                                       numberofcycles, fueList,
                                                       oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse,
                                                       parentvehicle);
                    break;

                case nameof(maxtorque):
                    maxtorque  = 1;
                    turboshaft = TryMakeTurboshaft(gearingR, maxtorque, numberofshafts, gen, spools, egt, isp,
                                                   numberofcycles, fueList,
                                                   oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse,
                                                   parentvehicle);
                    break;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            return(turboshaft);
        }