private void DoListChangedNotifications() { MainTabWindowUtility.NotifyAllPawnTables_PawnsChanged(); if (Find.ColonistBar != null) { Find.ColonistBar.MarkColonistsDirty(); } }
private static void DoListChangedNotifications(MapPawns __instance) { MainTabWindowUtility.NotifyAllPawnTables_PawnsChanged(); if (Find.ColonistBar == null) { return; } Find.ColonistBar.MarkColonistsDirty(); }
public void TryDropColonist(Pawn pawn) { var colonistGroup = TacticUtils.AllGroups.Where(x => x.curRect.Contains(Event.current.mousePosition)).FirstOrDefault(); if (colonistGroup != null) { colonistGroup.Add(pawn); MarkColonistsDirty(); MainTabWindowUtility.NotifyAllPawnTables_PawnsChanged(); } }
public void Reorder(int from, int to, int entryGroup) { int num = 0; Pawn pawn = null; Pawn pawn2 = null; Pawn pawn3 = null; for (int i = 0; i < cachedEntries.Count; i++) { if (cachedEntries[i].group == entryGroup && cachedEntries[i].pawn != null) { if (num == from) { pawn = cachedEntries[i].pawn; } if (num == to) { pawn2 = cachedEntries[i].pawn; } pawn3 = cachedEntries[i].pawn; num++; } } if (pawn == null) { return; } int num2 = pawn2?.playerSettings.displayOrder ?? (pawn3.playerSettings.displayOrder + 1); for (int j = 0; j < cachedEntries.Count; j++) { Pawn pawn4 = cachedEntries[j].pawn; if (pawn4 == null) { continue; } if (pawn4.playerSettings.displayOrder == num2) { if (pawn2 != null && cachedEntries[j].group == entryGroup) { if (pawn4.thingIDNumber < pawn2.thingIDNumber) { pawn4.playerSettings.displayOrder--; } else { pawn4.playerSettings.displayOrder++; } } } else if (pawn4.playerSettings.displayOrder > num2) { pawn4.playerSettings.displayOrder++; } else { pawn4.playerSettings.displayOrder--; } } pawn.playerSettings.displayOrder = num2; MarkColonistsDirty(); MainTabWindowUtility.NotifyAllPawnTables_PawnsChanged(); }
public static void OnLordArrived(Lord lord) { lord.Map?.GetMapComponent()?.OnLordArrived(lord); MainTabWindowUtility.NotifyAllPawnTables_PawnsChanged(); }
/// <summary> /// Reorders the colonist bar. Original private method: <see cref="ColonistBar.Reorder"/>. /// </summary> /// <param name="from">The index to reorder from.</param> /// <param name="to">The index to reorder to.</param> /// <param name="entryGroup">The original group of the entry.</param> /// <param name="cachedEntries">The cached entries of the colonist bar.</param> public static void Reorder(int from, int to, int entryGroup, List <ColonistBar.Entry> cachedEntries) { int num = 0; Pawn pawn = null; Pawn pawn2 = null; Pawn pawn3 = null; foreach (var entry in cachedEntries) { if (entry.group == entryGroup && entry.pawn != null) { if (num == from) { pawn = entry.pawn; } if (num == to) { pawn2 = entry.pawn; } pawn3 = entry.pawn; num++; } } if (pawn == null) { return; } int num2 = (pawn2 == null) ? (pawn3.playerSettings.displayOrder + 1) : pawn2.playerSettings.displayOrder; foreach (var entry in cachedEntries) { Pawn pawn4 = entry.pawn; if (pawn4 != null) { if (pawn4.playerSettings.displayOrder == num2) { if (pawn2 != null && entry.group == entryGroup) { if (pawn4.thingIDNumber < pawn2.thingIDNumber) { pawn4.playerSettings.displayOrder--; } else { pawn4.playerSettings.displayOrder++; } } } else if (pawn4.playerSettings.displayOrder > num2) { pawn4.playerSettings.displayOrder++; } else { pawn4.playerSettings.displayOrder--; } } } pawn.playerSettings.displayOrder = num2; Find.ColonistBar.MarkColonistsDirty(); MainTabWindowUtility.NotifyAllPawnTables_PawnsChanged(); }