private static void OpenLoadoutWindow(Pawn pawn, CompAwesomeInventoryLoadout comp, ThingGroupSelector groupSelector)
        {
            Find.WindowStack.Add(AwesomeInventoryServiceProvider.MakeInstanceOf <Dialog_ManageLoadouts>(new object[] { comp.Loadout, pawn, false }));
            ThingDef allowedThing = groupSelector.AllowedThing;

            if (allowedThing.MadeFromStuff || allowedThing.HasComp(typeof(CompQuality)) || allowedThing.useHitPoints)
            {
                Find.WindowStack.Add(new Dialog_StuffAndQuality(groupSelector));
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Make float menu options for creating empty loadout or loadout derived from equipped items.
        /// </summary>
        /// <param name="selPawn"> Selected pawn. </param>
        /// <returns> A list of options. </returns>
        public static List <FloatMenuOption> MakeActionableLoadoutOption(this Pawn selPawn)
        {
            ValidateArg.NotNull(selPawn, nameof(selPawn));

            return(new List <FloatMenuOption>()
            {
                new FloatMenuOption(
                    UIText.MakeEmptyLoadout.Translate(selPawn.NameShortColored)
                    , () =>
                {
                    AwesomeInventoryLoadout emptyLoadout = AwesomeInventoryLoadout.MakeEmptyLoadout(selPawn);
                    LoadoutManager.AddLoadout(emptyLoadout);
                    selPawn.SetLoadout(emptyLoadout);
                    Find.WindowStack.Add(
                        AwesomeInventoryServiceProvider.MakeInstanceOf <Dialog_ManageLoadouts>(emptyLoadout, selPawn, true));

                    if (BetterPawnControlUtility.IsActive)
                    {
                        BetterPawnControlUtility.SaveState(new List <Pawn> {
                            selPawn
                        });
                    }
                }),
                new FloatMenuOption(
                    UIText.MakeNewLoadout.Translate(selPawn.NameShortColored)
                    , () =>
                {
                    AwesomeInventoryLoadout loadout = new AwesomeInventoryLoadout(selPawn);
                    LoadoutManager.AddLoadout(loadout);
                    selPawn.SetLoadout(loadout);
                    Find.WindowStack.Add(
                        AwesomeInventoryServiceProvider.MakeInstanceOf <Dialog_ManageLoadouts>(loadout, selPawn, true));

                    if (BetterPawnControlUtility.IsActive)
                    {
                        BetterPawnControlUtility.SaveState(new List <Pawn> {
                            selPawn
                        });
                    }
                }),
            });
        }