Ejemplo n.º 1
0
        public bool SyncWithMap()
        {
            this.Message("SquadManager.SyncWithMap()");
            SquadManagerThing squadManagerThing = SquadManagerThing.Instance;

            if (SquadManagerThing.Instance.InMap)
            {
                this.squads.Clear();
                this.squads.AddRange(squadManagerThing.Squads);
                this.favorites.Clear();
                this.favorites.AddRange(squadManagerThing.Favorites);
                foreach (Squad current in this.squads)
                {
                    AllColonistsSquad allColonistsSquad = current as AllColonistsSquad;
                    if (allColonistsSquad != null)
                    {
                        this.allColonistsSquad = allColonistsSquad;
                    }
                }
                if (this.allColonistsSquad == null)
                {
                    Log.Error("Could not find default all-colonists squad");
                }
                else
                {
                    ColonistTracker.Instance.StartTrackingPawns(this.AllColonistsSquad.Pawns);
                }
                this.CurrentSquad = squadManagerThing.CurrentSquad;
                this.SquadFilter  = squadManagerThing.SquadFilter;
                return(true);
            }
            return(false);
        }
Ejemplo n.º 2
0
 public void Reset()
 {
     this.Message("SquadManager.Reset()");
     this.allColonistsSquad = new AllColonistsSquad();
     this.squads.Clear();
     this.squads.Add(this.allColonistsSquad);
     this.currentSquad = null;
     this.favorites.Clear();
     for (int i = 0; i < SquadManager.MaxFavorites; i++)
     {
         this.favorites.Add(null);
     }
 }
Ejemplo n.º 3
0
        public void SyncSquadsToColonistBar()
        {
            if (!this.enabled)
            {
                return;
            }
            SquadManager      instance          = SquadManager.Instance;
            ColonistTracker   instance2         = ColonistTracker.Instance;
            AllColonistsSquad allColonistsSquad = SquadManager.Instance.AllColonistsSquad;

            this.groupDictionaryScratch.Clear();
            this.squadDictionaryScratch.Clear();
            this.colonistBarGroups.Clear();
            int count = instance.Squads.Count;

            for (int i = 0; i < count; i++)
            {
                Squad            squad            = instance.Squads[i];
                ColonistBarGroup colonistBarGroup = null;
                if (this.groupDictionary.TryGetValue(squad, out colonistBarGroup) && squad == allColonistsSquad)
                {
                    this.allColonistsGroup = colonistBarGroup;
                }
                if (squad.Pawns.Count > 0 && squad.ShowInColonistBar)
                {
                    bool flag = false;
                    if (colonistBarGroup == null)
                    {
                        colonistBarGroup = new ColonistBarGroup(squad.Pawns.Count);
                        flag             = true;
                    }
                    else if (colonistBarGroup.OrderHash != squad.OrderHash)
                    {
                        flag = true;
                    }
                    if (flag)
                    {
                        colonistBarGroup.Clear();
                        colonistBarGroup.Name = squad.Name;
                        colonistBarGroup.Id   = squad.Id;
                        foreach (Pawn current in squad.Pawns)
                        {
                            TrackedColonist trackedColonist = instance2.FindTrackedColonist(current);
                            if (trackedColonist != null)
                            {
                                colonistBarGroup.Add(trackedColonist);
                            }
                        }
                    }
                    this.colonistBarGroups.Add(colonistBarGroup);
                    this.groupDictionaryScratch[squad]            = colonistBarGroup;
                    this.squadDictionaryScratch[colonistBarGroup] = squad;
                }
            }
            Dictionary <ColonistBarGroup, Squad> dictionary  = this.squadDictionary;
            Dictionary <Squad, ColonistBarGroup> dictionary2 = this.groupDictionary;

            this.groupDictionary        = this.groupDictionaryScratch;
            this.squadDictionary        = this.squadDictionaryScratch;
            this.groupDictionaryScratch = dictionary2;
            this.squadDictionaryScratch = dictionary;
        }