Beispiel #1
0
 public override void OnUpdate()
 {
     issue        = Lib.Proto.GetString(protoModule, "issue");
     status       = Lib.Proto.GetEnum(protoModule, "status", Experiment.ExpStatus.Stopped);
     subject      = ScienceDB.GetSubjectData(expInfo, Lib.Proto.GetInt(protoModule, "situationId"));
     scienceValue = Experiment.ScienceValue(subject);
 }
Beispiel #2
0
            public void Notify(Vessel vessel, string experiment_id, Experiment.ExpStatus oldStatus, Experiment.ExpStatus newStatus)
            {
                bool wasRunning = oldStatus == Experiment.ExpStatus.Forced || oldStatus == Experiment.ExpStatus.Running;
                bool isRunning  = newStatus == Experiment.ExpStatus.Forced || newStatus == Experiment.ExpStatus.Running;

                if (wasRunning == isRunning)
                {
                    return;
                }
                foreach (Action <Vessel, string, bool> receiver in receivers)
                {
                    try
                    {
                        receiver.Invoke(vessel, experiment_id, isRunning);
                    }
                    catch (Exception e)
                    {
                        Lib.Log("ExperimentStateChanged: Exception in event receiver " + e.Message + "\n" + e.ToString());
                    }
                }
            }