コード例 #1
0
 private void DoStageDropdown(WidgetRow row, int setI, Action <int> selectedAction)
 {
     if (row.ButtonText(Sel.stages[setI]?.label.CapitalizeFirst() ?? "TD.Invisible".Translate()))
     {
         List <FloatMenuOption> options      = new List <FloatMenuOption>();
         IEnumerable <int>      stageIndices = ContentsUtility.onlyAvailable ?
                                               ContentsUtility.AvailableInGame(t => ThoughtStagesForThing(t, Sel)) :
                                               Enumerable.Range(0, Sel.stages.Count);
         foreach (int i in stageIndices.Where(i => DebugSettings.godMode || (Sel.stages[i]?.visible ?? false)))
         {
             int localI = i;
             options.Add(new FloatMenuOption(Sel.stages[i]?.label.CapitalizeFirst() ?? "TD.Invisible".Translate(), () => selectedAction(localI)));
         }
         MainTabWindow_List.DoFloatMenu(options);
     }
 }
コード例 #2
0
 public override IEnumerable <TraitDef> Options() =>
 ContentsUtility.onlyAvailable
                         ? ContentsUtility.AvailableInGame(t => (t as Pawn)?.story?.traits.allTraits.Select(tr => tr.def) ?? Enumerable.Empty <TraitDef>())
                         : base.Options();
コード例 #3
0
 public override IEnumerable <ThoughtDef> Options() =>
 ContentsUtility.onlyAvailable
                         ? ContentsUtility.AvailableInGame(ThoughtsForThing)
                         : base.Options();