コード例 #1
0
        public static AircraftEndorsement GetEndorsementMask(AircraftCategory category)
        {
            AircraftEndorsement mask = AircraftEndorsement.None;

            switch (category)
            {
            case AircraftCategory.Airplane:
                mask |= AircraftEndorsement.SingleEngineLand;
                mask |= AircraftEndorsement.SingleEngineSea;
                mask |= AircraftEndorsement.MultiEngineLand;
                mask |= AircraftEndorsement.MultiEngineSea;

                mask |= AircraftEndorsement.Complex;
                mask |= AircraftEndorsement.HighPerformance;
                mask |= AircraftEndorsement.TailDragger;
                break;

            case AircraftCategory.Rotorcraft:
                mask |= AircraftEndorsement.Helicoptor;
                mask |= AircraftEndorsement.Gryoplane;
                break;

            case AircraftCategory.Glider:
                mask = AircraftEndorsement.Glider;
                break;

            case AircraftCategory.LighterThanAir:
                mask |= AircraftEndorsement.Airship;
                mask |= AircraftEndorsement.Balloon;
                break;

            case AircraftCategory.PoweredLift:
                mask = AircraftEndorsement.PoweredLift;
                break;

            case AircraftCategory.PoweredParachute:
                mask |= AircraftEndorsement.PoweredParachuteLand;
                mask |= AircraftEndorsement.PoweredParachuteSea;
                break;

            case AircraftCategory.WeightShiftControl:
                mask |= AircraftEndorsement.WeightShiftControlLand;
                mask |= AircraftEndorsement.WeightShiftControlSea;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            return(mask);
        }
コード例 #2
0
        static RootElement CreateEndorsementsElement(AircraftEndorsement endorsements)
        {
            var     root = new RootElement("Aircraft Ratings & Endorsements");
            Section section;

            foreach (AircraftCategory category in Enum.GetValues(typeof(AircraftCategory)))
            {
                section = new Section(category.ToHumanReadableName());
                PopulateEndorsementSection(section, endorsements, Pilot.GetEndorsementMask(category));
                root.Add(section);
            }

            return(root);
        }
コード例 #3
0
        static void PopulateEndorsementSection(Section section, AircraftEndorsement endorsements, AircraftEndorsement mask)
        {
            string caption;

            foreach (AircraftEndorsement endorsement in Enum.GetValues(typeof(AircraftEndorsement)))
            {
                if (endorsement == AircraftEndorsement.None || !mask.HasFlag(endorsement))
                {
                    continue;
                }

                caption = endorsement.ToHumanReadableName();
                section.Add(new BooleanElement(caption, endorsements.HasFlag(endorsement), endorsement.ToString()));
            }
        }
コード例 #4
0
        static void PopulateEndorsementSection(Section section, AircraftEndorsement endorsements, AircraftEndorsement mask)
        {
            string caption;

            foreach (AircraftEndorsement endorsement in Enum.GetValues (typeof (AircraftEndorsement))) {
                if (endorsement == AircraftEndorsement.None || !mask.HasFlag (endorsement))
                    continue;

                caption = endorsement.ToHumanReadableName ();
                section.Add (new BooleanElement (caption, endorsements.HasFlag (endorsement), endorsement.ToString ()));
            }
        }
コード例 #5
0
        static RootElement CreateEndorsementsElement(AircraftEndorsement endorsements)
        {
            var root = new RootElement ("Aircraft Ratings & Endorsements");
            Section section;

            foreach (AircraftCategory category in Enum.GetValues (typeof (AircraftCategory))) {
                section = new Section (category.ToHumanReadableName ());
                PopulateEndorsementSection (section, endorsements, Pilot.GetEndorsementMask (category));
                root.Add (section);
            }

            return root;
        }