private FloatMenuOption GetFailureReason(Pawn myPawn)
        {
            if (!myPawn.CanReach(this, PathEndMode.InteractionCell, Danger.Some, false, TraverseMode.ByPawn))
            {
                return(new FloatMenuOption("CannotUseNoPath".Translate(), null, MenuOptionPriority.Default, null, null, 0f, null, null));
            }
            if (base.Spawned && base.Map.gameConditionManager.ConditionIsActive(GameConditionDefOf.SolarFlare))
            {
                return(new FloatMenuOption("CannotUseSolarFlare".Translate(), null, MenuOptionPriority.Default, null, null, 0f, null, null));
            }
            if (!this.TryGetComp <CompPowerTrader>().PowerOn)
            {
                return(new FloatMenuOption("CannotUseNoPower".Translate(), null, MenuOptionPriority.Default, null, null, 0f, null, null));
            }
            if (!Utils.ExceptionAndroidList.Contains(myPawn.def.defName))
            {
                return(new FloatMenuOption("ATPP_CanOnlyBeUsedByAndroid".Translate(), null, MenuOptionPriority.Default, null, null, 0f, null, null));
            }

            CompAndroidState ca = myPawn.ATCompState;

            if (ca == null || !ca.UseBattery)
            {
                return(new FloatMenuOption("ATPP_CannotUseBecauseNotInBatteryMode".Translate(), null, MenuOptionPriority.Default, null, null, 0f, null, null));
            }


            CompReloadStation rs = this.TryGetComp <CompReloadStation>();
            int nb = rs.getNbAndroidReloading(true);

            if (nb >= 8)
            {
                return(new FloatMenuOption("ATPP_CannotUseEveryPlaceUsed".Translate(), null, MenuOptionPriority.Default, null, null, 0f, null, null));
            }

            return(null);
        }