protected override void updateValidParts()
        {
            if (validParts.Count <= 0)
                return;

            for (int i = 0; i < validParts.Count; i++)
            {
                Part p = validParts[i];

                if (p == null)
                    continue;

                Notes_ExpPart n = getExpNotes(p.flightID);

                if (n == null)
                    n = new Notes_ExpPart(p, this);

                n.clearExp();

                var exps = p.FindModulesImplementing<ModuleScienceExperiment>();

                for (int j = 0; j < exps.Count; j++)
                {
                    ModuleScienceExperiment sciExp = exps[j];

                    if (sciExp == null)
                        continue;

                    if (string.IsNullOrEmpty(sciExp.experimentID))
                        continue;

                    ScienceExperiment exp = ResearchAndDevelopment.GetExperiment(sciExp.experimentID);

                    if (exp == null)
                        continue;

                    n.addPartExperiment(sciExp, exp);
                }

                if (n.ExpCount > 0)
                {
                    if (!expParts.ContainsKey(p.flightID))
                        expParts.Add(p.flightID, n);
                }
                else if (expParts.ContainsKey(p.flightID))
                    expParts.Remove(p.flightID);
            }
        }
 public Notes_Experiment(Notes_ExpPart r, ModuleScienceExperiment m, ScienceExperiment e, int limit = 1)
 {
     root = r;
     experimentModule = m;
     experiment = e;
     name = e.experimentTitle;
     dataLimit = limit;
 }