Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }