public ToolAssignment MakeNewToolAssignment() { int uniqueId = assignments.Any() ? assignments.Max(a => a.uniqueId) + 1 : 1; var toolAssignment = new ToolAssignment(uniqueId, $"{"ToolAssignment".Translate()} {uniqueId}"); toolAssignment.filter.SetAllow(ThingCategoryDefOf.Tools, true); assignments.Add(toolAssignment); return(toolAssignment); }
public Dialog_ManageToolAssignments(ToolAssignment selectedToolAssignment) { forcePause = true; doCloseX = true; doCloseButton = true; closeOnClickedOutside = true; absorbInputAroundWindow = true; if (globalFilter == null) { globalFilter = new ThingFilter(); globalFilter.SetAllow(ThingCategoryDefOf.Tools, true); } ToolAssignment = selectedToolAssignment; }
public AcceptanceReport TryDelete(ToolAssignment toolAssignment) { foreach (Pawn pawn in PawnsFinder.AllMapsCaravansAndTravelingTransportPods_Alive) { if (pawn.CanUseTools(out var tracker) && tracker.ToolAssignment == toolAssignment) { return(new AcceptanceReport("ToolAssignmentInUse".Translate(pawn))); } } foreach (Pawn pawn2 in PawnsFinder.AllMapsWorldAndTemporary_AliveOrDead) { if (pawn2.CanUseTools(out var tracker2) && tracker2.ToolAssignment == toolAssignment) { tracker2.ToolAssignment = null; } } assignments.Remove(toolAssignment); return(AcceptanceReport.WasAccepted); }