/// <summary>
 /// Try and disable the module in the specified hardpoint.
 /// </summary>
 public ModuleResult DisableModuleIn(Hardpoint hardpoint, ActorModule.DisabledReason reason = ActorModule.DisabledReason.User)
 {
     if (hardpoint == null)
     {
         return(ModuleResult.InvalidHardpoint);
     }
     if (hardpoint.IsEmpty)
     {
         return(ModuleResult.NoModule);
     }
     else if (!hardpoint.Module.IsEnabled)
     {
         return(ModuleResult.AlreadyDisabled);
     }
     else
     {
         ModuleResult result = hardpoint.Module.DisableModule(reason);
         if (result == ModuleResult.Success)
         {
             --_totalActive;
             if (reason == ActorModule.DisabledReason.ResourceLoss)
             {
                 ++_autoDisabled;
             }
             if (onChange != null)
             {
                 onChange(ActorModule.Change.Disabled, hardpoint.Module);
             }
         }
         return(result);
     }
 }
    /// <summary>
    /// Try and enable the module in the specified hardpoint.
    /// </summary>
    public ModuleResult EnableModuleIn(Hardpoint hardpoint)
    {
        if (hardpoint.IsEmpty)
        {
            return(ModuleResult.NoModule);
        }
        else
        {
            ActorModule.DisabledReason disabledReason = hardpoint.Module.DisabledBy;

            ModuleResult res = hardpoint.Module.EnableModule();
            if (res == ModuleResult.Success)
            {
                ++_totalActive;
                if (disabledReason != ActorModule.DisabledReason.User)
                {
                    --_autoDisabled;
                }
                if (onChange != null)
                {
                    onChange(ActorModule.Change.Enabled, hardpoint.Module);
                }
            }
            return(res);
        }
    }