private void DoMassHandlerFloatMenu(List <Pawn> targets, Map map)
        {
            var options = new List <FloatMenuOption>();

            options.Add(new FloatMenuOption(HandlerMode.Any.Label(), () => targets.ForEach(t => t.handlerSettings().Mode   = HandlerMode.Any)));
            options.Add(new FloatMenuOption(HandlerMode.Level.Label(), () => targets.ForEach(t => t.handlerSettings().Mode = HandlerMode.Level)));

            foreach (var handler in HandlerUtility.HandlersOrdered(map))
            {
                options.Add(new FloatMenuOption(HandlerUtility.HandlerLabel(handler), () => targets.ForEach(t => t.handlerSettings().Handler = handler)));
            }

            Find.WindowStack.Add(new FloatMenu(options));
        }
        private void DoHandlerFloatMenu(Pawn target)
        {
            var settings = target.handlerSettings();
            var minSkill = TrainableUtility.MinimumHandlingSkill(target);
            var options  = new List <FloatMenuOption>();

            options.Add(new FloatMenuOption(HandlerMode.Any.Label(), () => settings.Mode   = HandlerMode.Any));
            options.Add(new FloatMenuOption(HandlerMode.Level.Label(), () => settings.Mode = HandlerMode.Level));

            foreach (var handler in HandlerUtility.HandlersOrdered(target.Map))
            {
                options.Add(new FloatMenuOption(HandlerUtility.HandlerLabel(handler, minSkill),
                                                () => settings.Handler = handler));
            }

            Find.WindowStack.Add(new FloatMenu(options));
        }