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)); } }
/// <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 }); } }), }); }