private static bool RightClickToRemoveHeader(PawnColumnWorker __instance, Rect headerRect, PawnTable table) { if (Event.current.shift) { return(true); } if (Event.current.button != 1) { return(true); } if (!(table is PawnTable_NumbersMain numbersTable)) { return(true); } if (!Mouse.IsOver(headerRect)) { return(true); } numbersTable.ColumnsListForReading.RemoveAll(x => ReferenceEquals(__instance, x.Worker)); if (Find.WindowStack.currentlyDrawnWindow is MainTabWindow_Numbers numbers) { numbers.RefreshAndStoreSessionInWorldComp(); } return(false); }
public static void HandleInteractionsDetailedPrefix(PawnColumnWorker __instance, Rect rect, Pawn pawn) { var component = Current.Game.GetComponent <WorkManagerGameComponent>(); if (!component.Enabled || !Find.PlaySettings.useWorkPriorities) { return; } var workType = __instance.def.workType; var enabled = component.GetPawnWorkTypeEnabled(pawn, workType); if (Event.current.type == EventType.MouseDown && Mouse.IsOver(rect) && Event.current.button == 2) { component.SetPawnWorkTypeEnabled(pawn, workType, !enabled); } }
public static void DoHeaderPrefix(PawnColumnWorker __instance, ref Rect rect) { const int iconSize = 16; var buttonRect = new Rect(rect.center.x - iconSize / 2, rect.yMax - iconSize - 4, iconSize, iconSize); var component = Current.Game.GetComponent <WorkManagerGameComponent>(); if (component.Enabled) { CustomWidgets.ButtonImageToggle(() => !component.DisabledWorkTypes.Contains(__instance.def.workType), newValue => component.SetWorkTypeEnabled(__instance.def.workType, newValue), buttonRect, Resources.Strings.WorkTypeDisableTooltip, Resources.Textures.WorkTypeToggleButtonEnabled, Resources.Strings.WorkTypeEnableTooltip, Resources.Textures.WorkTypeToggleButtonDisabled); } else { GUI.color = Color.white; GUI.DrawTexture(buttonRect, Resources.Textures.WorkTypeToggleButtonInactive); } rect = new Rect(rect.x, rect.y, rect.width, rect.height - 30); }