ConfigNode GetAllAxesFromPartsAndModules(List <Part> partList) { ConfigNode localAxesNodes = new ConfigNode(); for (int partNum = 0; partNum < partList.Count; partNum++) { Part part = partList[partNum]; ConfigNode partNode = new ConfigNode(PartNodeStringValue(part)); bool hasAxis = false; for (int moduleNum = 0; moduleNum < part.Modules.Count; moduleNum++) { PartModule module = part.Modules[moduleNum]; ConfigNode axeNode = new ConfigNode(ModuleNodeStringValue(module)); AxisGroupsManager.SaveAxisFieldNodes(module, axeNode); if (axeNode.HasNode(axisgroups)) { hasAxis = true; partNode.AddNode(axeNode); } } if (hasAxis) { localAxesNodes.AddNode(partNode); } } return(localAxesNodes); }
void RestoreAxes(List <Part> partsList) { for (int partNum = 0; partNum < partsList.Count; partNum++) { Part part = partsList[partNum]; if (axesNodes.HasNode(PartNodeStringValue(part))) { var partNode = axesNodes.GetNode(PartNodeStringValue(part)); for (int moduleNum = 0; moduleNum < part.Modules.Count; moduleNum++) { PartModule module = part.Modules[moduleNum]; if (partNode.HasNode(ModuleNodeStringValue(module))) { var moduleNode = partNode.GetNode(ModuleNodeStringValue(module)); //moduleNode.Save("moduleNode-" + partNum + "-" + moduleNum); AxisGroupsManager.BuildBaseAxisFields(module); AxisGroupsManager.LoadAxisFieldNodes(module, moduleNode); } } } } }