Ejemplo n.º 1
0
        private List <contractUIObject> typeSort(List <contractUIObject> cL, bool B)
        {
            List <int> position             = new List <int>();
            List <contractUIObject> altList = new List <contractUIObject>();

            for (int i = 0; i < cL.Count; i++)
            {
                foreach (ContractParameter cP in cL[i].Container.Root.AllParameters)
                {
                    if (cP.GetType() == typeof(ReachAltitudeEnvelope))
                    {
                        altList.Add(cL[i]);
                        position.Add(i);
                        break;
                    }
                }
            }
            if (altList.Count > 1)
            {
                altList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(B, ((ReachAltitudeEnvelope)a.Container.Root.AllParameters.First(s => s.GetType() == typeof(ReachAltitudeEnvelope))).minAltitude.CompareTo(((ReachAltitudeEnvelope)b.Container.Root.AllParameters.First(s => s.GetType() == typeof(ReachAltitudeEnvelope))).minAltitude), a.Container.Title.CompareTo(b.Container.Title)));
                for (int j = 0; j < position.Count; j++)
                {
                    cL[position[j]] = altList[j];
                }
            }

            //ReachFlightEnvelop doesn't actually seem to be used by anything

            //position.Clear();
            //List<contractContainer> flightList = new List<contractContainer>();
            //for (int i = 0; i < cL.Count; i++)
            //{
            //    foreach (parameterContainer cP in cL[i].paramList)
            //    {
            //        if (cP.cParam.ID == "testFlightEnvelope")
            //        {
            //            flightList.Add(cL[i]);
            //            position.Add(i);
            //        }
            //    }
            //}
            //if (flightList.Count > 1)
            //{
            //    flightList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(B, ((ReachFlightEnvelope)a.contract.AllParameters.First(s => s.ID == "testFlightEnvelope")).minAltitude.CompareTo(((ReachFlightEnvelope)b.contract.AllParameters.First(s => s.ID == "testFlightEnvelope")).minAltitude), a.contract.Title.CompareTo(b.contract.Title)));
            //    for (int j = 0; j < position.Count; j++)
            //    {
            //        cL[position[j]] = flightList[j];
            //    }
            //}

            return(cL);
        }
Ejemplo n.º 2
0
        private List <TrackingStationWidget> SortWidgetsAlpha(List <TrackingStationWidget> widgets, bool asc)
        {
            List <KeyValuePair <TrackingStationWidget, double> > maneuvers = GetManeuvers(widgets);

            widgets.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(!asc, a.vessel.vesselName.CompareTo(b.vessel.vesselName), a.vessel.launchTime.CompareTo(b.vessel.launchTime)));

            int count = maneuvers.Count;

            for (int i = 0; i < count; i++)
            {
                widgets.Add(maneuvers[i].Key);
            }

            return(widgets);
        }
        //Returns an ordered list of missions for the main window; the master mission is always first
        internal List <contractMission> getAllMissions()
        {
            List <contractMission> mList    = new List <contractMission>();
            List <contractMission> tempList = new List <contractMission>();

            for (int i = 0; i < missionList.Count; i++)
            {
                contractMission m = missionList.At(i);

                if (m == null)
                {
                    continue;
                }

                if (m.MasterMission)
                {
                    mList.Add(m);
                }
                else
                {
                    tempList.Add(m);
                }
            }

            if (mList.Count == 0)
            {
                if (addMissionList("MasterMission"))
                {
                    mList.Add(getMissionList("MasterMission"));
                }
            }

            tempList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(false, a.ActiveContracts.CompareTo(b.ActiveContracts), a.MissionTitle.CompareTo(b.MissionTitle)));

            if (tempList.Count > 0)
            {
                mList.AddRange(tempList);
            }

            return(mList);
        }
Ejemplo n.º 4
0
        private List <Guid> sortContracts(List <Guid> list, contractSortClass sortClass, bool dsc)
        {
            sortList.Clear();

            int l = list.Count;

            for (int i = 0; i < l; i++)
            {
                Guid id = list[i];

                contractUIObject cC = currentMission.getContract(id);

                if (cC == null)
                {
                    continue;
                }

                if (cC.Order != null)
                {
                    continue;
                }

                sortList.Add(cC);
            }

            switch (sortClass)
            {
            case contractSortClass.Expiration:
                sortList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(!dsc, a.Container.Duration.CompareTo(b.Container.Duration), a.Container.Title.CompareTo(b.Container.Title)));
                break;

            case contractSortClass.Acceptance:
                sortList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(!dsc, a.Container.Root.DateAccepted.CompareTo(b.Container.Root.DateAccepted), a.Container.Title.CompareTo(b.Container.Title)));
                break;

            case contractSortClass.Reward:
                sortList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(!dsc, a.Container.TotalReward.CompareTo(b.Container.TotalReward), a.Container.Title.CompareTo(b.Container.Title)));

                break;

            case contractSortClass.Difficulty:
                sortList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(!dsc, a.Container.Root.Prestige.CompareTo(b.Container.Root.Prestige), a.Container.Title.CompareTo(b.Container.Title)));

                break;

            case contractSortClass.Planet:
                sortList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(!dsc, a.Container.TargetPlanet.CompareTo(b.Container.TargetPlanet), a.Container.Title.CompareTo(b.Container.Title)));

                break;

            case contractSortClass.Type:
                sortList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(!dsc, a.Container.Root.GetType().Name.CompareTo(b.Container.Root.GetType().Name), a.Container.Title.CompareTo(b.Container.Title)));
                sortList = typeSort(sortList, !dsc);
                break;
            }

            list.Clear();

            if (pinnedList.Count > 0)
            {
                list.AddRange(pinnedList);
            }

            int k = sortList.Count;

            for (int i = 0; i < k; i++)
            {
                contractUIObject c = sortList[i];

                if (c == null)
                {
                    continue;
                }

                list.Add(c.ID);
            }

            return(list);
        }