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); }
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); } }
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; }