Exemplo n.º 1
0
    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;
            }
        }
    }
Exemplo n.º 2
0
    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);
        };
    }