public void Run() { if (HasData) { throw new InvalidOperationException("Experiment already contains data"); } if (Inoperable) { throw new InvalidOperationException("Experiment is inoperable"); } // Stock experiments // FIXME: Don't use private API!!! var gatherData = experiment.GetType().GetMethod("gatherData", BindingFlags.NonPublic | BindingFlags.Instance); if (gatherData != null) { var result = (IEnumerator)gatherData.Invoke(experiment, new object[] { false }); experiment.StartCoroutine(result); return; } // DMagic experiments gatherData = experiment.GetType().GetMethod("gatherScienceData", BindingFlags.Public | BindingFlags.Instance | BindingFlags.FlattenHierarchy); if (gatherData != null) { gatherData.Invoke(experiment, new object[] { true }); return; } throw new InvalidOperationException("Failed to find a gather data method for this experiment"); }
private void DeployExperiment() { if (module.GetData().Any()) { throw new KOSException("Experiment already contains data"); } if (module.Inoperable) { throw new KOSException("Experiment is inoperable"); } object result = gatherDataMethod.Invoke(module, new object[] { false }); IEnumerator e = result as IEnumerator; module.StartCoroutine(e); }
public void Deploy() { var gatherDataMethod = experiment.GetType() .GetMethod("gatherData", BindingFlags.NonPublic | BindingFlags.Instance); experiment.DeployExperiment(); object result = gatherDataMethod !.Invoke(experiment, new object[] { false }); experiment.StartCoroutine(result as IEnumerator); }
protected virtual void Deploy() { ThrowIfNotCPUVessel(); var gatherDataMethod = module.GetType().GetMethod("gatherData", BindingFlags.NonPublic | BindingFlags.Instance); object result = gatherDataMethod.Invoke(module, new object[] { false }); IEnumerator e = result as IEnumerator; module.StartCoroutine(e); }
public void Run() { if (HasData) { throw new InvalidOperationException("Experiment already contains data"); } if (Inoperable) { throw new InvalidOperationException("Experiment is inoperable"); } // FIXME: Don't use private API!!! var gatherData = experiment.GetType().GetMethod("gatherData", BindingFlags.NonPublic | BindingFlags.Instance); var result = (IEnumerator)gatherData.Invoke(experiment, new object[] { false }); experiment.StartCoroutine(result); }