public void MarkDone(string message)
        {
            if (!string.IsNullOrEmpty(message))
            {
                PluginLogger.Instance.Info($"Process {id} for module {module.Name} terminated with: {message}");
                ScreenMessages.PostScreenMessage(
                    $"<color=red><size=20>Module {module.Name} failed: {message}</size></color>", 5,
                    ScreenMessageStyle.UPPER_CENTER);
            }

            state = KontrolSystemProcessState.Available;
            context?.Cleanup();
            context = null;
        }
 public void MarkRunning(KSPContext newContext)
 {
     state = KontrolSystemProcessState.Running;
     context?.Cleanup();
     context = newContext;
 }
 public KontrolSystemProcess MarkOutdated()
 {
     state = KontrolSystemProcessState.Outdated;
     return(this);
 }
 public KontrolSystemProcess(IKontrolModule module)
 {
     this.module = module;
     state       = KontrolSystemProcessState.Available;
     id          = Guid.NewGuid();
 }