public void UpdatePosition(int order, int old)
        {
            switch (_mode)
            {
            case Tracking_Mode.CelestialBody:
                int index = _body == null ? 100 : _body.flightGlobalsIndex;

                Tracking_Persistence.SetBodyOrder(index, order, old);
                break;

            case Tracking_Mode.VesselType:
                Tracking_Persistence.SetTypeOrder((int)_type, order, old);
                break;
            }
        }
Ejemplo n.º 2
0
        private Tracking_Group VesselTypeGroup(VesselType type)
        {
            int vessels = _TrackedVesselWidgets.Count;

            List <TrackingStationWidget> typeVessels = new List <TrackingStationWidget>();

            for (int i = 0; i < vessels; i++)
            {
                if (_TrackedVesselWidgets[i].vessel.vesselType == type)
                {
                    typeVessels.Add(_TrackedVesselWidgets[i]);
                }
            }

            if (typeVessels.Count > 0)
            {
                return(new Tracking_Group(Tracking_Utils.VesselTypeString(type), Tracking_Persistence.GetTypePersistence((int)type), _instantStart, SortWidgets(typeVessels), null, null, type, Tracking_Mode.VesselType));
            }

            return(null);
        }
        private void AddSubGroup(Tracking_MoonGroup subGroup)
        {
            Tracking_SubGroup sub = new Tracking_SubGroup(Tracking_Utils.LocalizeBodyName(subGroup.Moon.displayName), Tracking_Persistence.GetBodyPersistence(subGroup.Moon.flightGlobalsIndex), _instant, subGroup.Vessels, subGroup.Moon, _mode);

            _subGroups.Add(sub);
        }
Ejemplo n.º 4
0
        private List <Tracking_Group> SortCelestialBodies()
        {
            List <Tracking_Group> vesselGroups = new List <Tracking_Group>();

            int count = _OrderedBodyList.Count;

            for (int i = 0; i < count; i++)
            {
                Tracking_BodyGroup body = _OrderedBodyList[i];

                List <TrackingStationWidget> bodyVessels = new List <TrackingStationWidget>();

                int vessels = _TrackedVesselWidgets.Count;

                for (int j = 0; j < vessels; j++)
                {
                    if (_TrackedVesselWidgets[j].vessel.mainBody == body.Body)
                    {
                        bodyVessels.Add(_TrackedVesselWidgets[j]);
                    }
                }

                List <Tracking_MoonGroup> moonGroups = new List <Tracking_MoonGroup>();

                int moons = body.Moons.Count;

                for (int k = 0; k < moons; k++)
                {
                    List <TrackingStationWidget> moonVessels = new List <TrackingStationWidget>();

                    for (int l = 0; l < vessels; l++)
                    {
                        if (_TrackedVesselWidgets[l].vessel.mainBody == body.Moons[k])
                        {
                            moonVessels.Add(_TrackedVesselWidgets[l]);
                        }
                    }

                    if (moonVessels.Count > 0)
                    {
                        moonGroups.Add(new Tracking_MoonGroup()
                        {
                            Moon = body.Moons[k], Vessels = SortWidgets(moonVessels)
                        });
                    }
                }

                if (bodyVessels.Count > 0 || moonGroups.Count > 0)
                {
                    vesselGroups.Add(new Tracking_Group(Tracking_Utils.LocalizeBodyName(body.Body.displayName), Tracking_Persistence.GetBodyPersistence(body.Body.flightGlobalsIndex), _instantStart, SortWidgets(bodyVessels), moonGroups, body.Body, VesselType.Unknown, Tracking_Mode.CelestialBody));
                }
            }

            return(vesselGroups);
        }