private void failureHeirachyBuilder(ref List <FailureDescriptor> possibleFailures, string failureTag, FailureDescriptor.Failure baseFailure, FailureDescriptor.FailureGarbage baseGarbageCollection, string baseName, FailureDescriptor.Failure typeFailure, FailureDescriptor.FailureGarbage typeGarbageCollection, string typeName, FailureDescriptor.Failure partFailure, FailureDescriptor.FailureGarbage partGarbageCollection, string partName) { String unsplitClasses = config.GetValue <String>(failureTag + "_MAP"); string[] classes = unsplitClasses.Split(';'); for (int i = 0; i < classes.Length; i++) { string[] splitC = classes[i].Split(':'); switch (splitC[0]) { case "BASE": possibleFailures.Add(new FailureDescriptor( baseFailure, baseGarbageCollection, config.GetValue <int>(failureTag + "_" + splitC[0] + "_WEIGHT"), "", baseName )); break; case "TYPE": possibleFailures.Add(new FailureDescriptor( typeFailure, typeGarbageCollection, config.GetValue <int>(failureTag + "_" + splitC[1] + "_WEIGHT"), splitC[1], typeName )); break; case "PART": possibleFailures.Add(new FailureDescriptor( partFailure, partGarbageCollection, config.GetValue <int>(failureTag + "_" + splitC[1] + "_WEIGHT"), splitC[1], partName )); break; } } }
private void initialiseDefaultGarabageCollection() { defaultBaseGarbageCollection = (FailureDescriptor failureDescriptor) => { ifEmptySelectionSpace(ref FlightGlobals.ActiveVessel.parts, failureDescriptor); }; defaultTypeGarbageCollection = (FailureDescriptor failureDescriptor) => { List <Part> selectionSpace = extractPartOfType(FlightGlobals.ActiveVessel.parts, intToPartCategories(Convert.ToInt32(failureDescriptor.partInformation))); ifEmptySelectionSpace(ref selectionSpace, failureDescriptor); }; defaultPartGarbageCollection = (FailureDescriptor failureDescriptor) => { List <Part> selectionSpace = extractPartOfName(FlightGlobals.ActiveVessel.parts, failureDescriptor.partInformation); ifEmptySelectionSpace(ref selectionSpace, failureDescriptor); }; }