public override IEnumerable <Gizmo> GetGizmos()
        {
            var armGizmo = new Command_Toggle {
                toggleAction = ArmGizmoAction,
                isActive     = () => desiredArmState,
                icon         = Resources.Textures.UIArm,
                defaultLabel = ArmButtonLabel,
                defaultDesc  = ArmButtonDesc,
                hotKey       = Resources.KeyBinging.RemoteExplosiveArm
            };

            yield return(armGizmo);

            if (RemoteExplosivesUtility.ChannelsUnlocked())
            {
                var channelGizmo = RemoteExplosivesUtility.MakeChannelGizmo(desiredChannel, currentChannel, ChannelGizmoAction);
                yield return(channelGizmo);
            }

            if (replaceComp != null)
            {
                yield return(replaceComp.MakeGizmo());
            }

            if (DebugSettings.godMode)
            {
                yield return(new Command_Action {
                    action = () => {
                        if (isArmed)
                        {
                            Disarm();
                        }
                        else
                        {
                            Arm();
                        }
                    },
                    icon = Resources.Textures.UIArm,
                    defaultLabel = "DEV: Toggle armed"
                });

                yield return(new Command_Action {
                    action = () => {
                        Arm();
                        LightFuse();
                    },
                    icon = Resources.Textures.UIDetonate,
                    defaultLabel = "DEV: Detonate now"
                });
            }

            foreach (var g in base.GetGizmos())
            {
                yield return(g);
            }
        }
        public override string GetInspectString()
        {
            var stringBuilder = new StringBuilder();

            stringBuilder.Append(base.GetInspectString());
            stringBuilder.AppendLine();
            stringBuilder.Append("DetonatorTable_inrange".Translate());
            stringBuilder.Append(": " + numViableExplosives);
            if (RemoteExplosivesUtility.ChannelsUnlocked())
            {
                stringBuilder.AppendLine();
                stringBuilder.Append(RemoteExplosivesUtility.GetCurrentChannelInspectString(currentChannel));
            }
            return(stringBuilder.ToString());
        }
        public override string GetInspectString()
        {
            var stringBuilder = new StringBuilder();

            stringBuilder.Append(base.GetInspectString());
            if (IsArmed)
            {
                stringBuilder.Append("TrapArmed".Translate());
            }
            else
            {
                stringBuilder.Append("TrapNotArmed".Translate());
            }
            if (RemoteExplosivesUtility.ChannelsUnlocked())
            {
                stringBuilder.AppendLine();
                stringBuilder.Append(RemoteExplosivesUtility.GetCurrentChannelInspectString(currentChannel));
            }
            return(stringBuilder.ToString());
        }
        public override IEnumerable <Gizmo> GetGizmos()
        {
            var detonateGizmo = new Command_Toggle {
                toggleAction = DetonateGizmoAction,
                isActive     = () => wantDetonation,
                icon         = Resources.Textures.UIDetonate,
                defaultLabel = DetonateButtonLabel,
                defaultDesc  = DetonateButtonDesc,
                hotKey       = Resources.KeyBinging.RemoteTableDetonate
            };

            yield return(detonateGizmo);

            if (RemoteExplosivesUtility.ChannelsUnlocked())
            {
                if (hasChannelsComponent)
                {
                    var channelGizmo = RemoteExplosivesUtility.MakeChannelGizmo(currentChannel, currentChannel, ChannelGizmoAction);
                    yield return(channelGizmo);
                }
                else
                {
                    var componentGizmo = new Command_Toggle {
                        toggleAction = ComponentGizmoAction,
                        isActive     = () => wantChannelsComponent,
                        icon         = Resources.Textures.UIChannelComponent,
                        defaultLabel = InstallComponentButtonLabel,
                        defaultDesc  = InstallComponentButtonDesc
                    };
                    yield return(componentGizmo);
                }
            }

            foreach (var g in base.GetGizmos())
            {
                yield return(g);
            }
        }