public static bool Prefix(UseButtonManager __instance, IUsable CAKODNGLPDF)
            {
                if (CAKODNGLPDF == null)
                {
                    return(true);
                }

                var Console = CAKODNGLPDF.TryCast <Console>();

                if (Console == null)
                {
                    return(true);
                }

                if (!Map.ContainsKey(Console.ConsoleId))
                {
                    return(true);
                }

                var CustomUsable = Map[Console.ConsoleId];

                __instance.currentTarget    = CAKODNGLPDF;
                __instance.UseButton.sprite = CustomUsable.UseIcon != null
                                        ? CustomUsable.UseIcon
                                        : __instance.UseImage;
                CooldownHelpers.SetCooldownNormalizedUvs(__instance.UseButton);
                __instance.UseButton.material.SetFloat(Globals.PERCENT,
                                                       CustomUsable.PercentCooldown);
                __instance.UseButton.color = UseButtonManager.EnabledColor;

                return(false);
            }
        public static bool IsBlocked(IUsable target, PlayerControl pc)
        {
            if (target == null)
            {
                return(false);
            }

            Console       targetConsole    = target.TryCast <Console>();
            SystemConsole targetSysConsole = target.TryCast <SystemConsole>();
            MapConsole    targetMapConsole = target.TryCast <MapConsole>();

            if ((targetConsole != null && IsBlocked(targetConsole, pc)) ||
                (targetSysConsole != null && IsBlocked(targetSysConsole, pc)) ||
                (targetMapConsole != null && !MapOptions.canUseAdmin))
            {
                return(true);
            }
            return(false);
        }