public override void OnSave(ConfigNode node) { if (science_data != null) { ConfigNode science_node = node.AddNode("ScienceData"); science_data.Save(science_node); } }
public override void OnSave(ConfigNode node) { Debug.Log("Saving"); if (scienceData != null) { ConfigNode scienceNode = node.AddNode("ScienceData"); scienceData.Save(scienceNode); Debug.Log("Saved!"); } }
public override void OnSave(ConfigNode node) { if (scienceData == null) { return; } ConfigNode scienceNode = node.AddNode("ScienceData"); scienceData.Save(scienceNode); }
private bool finishTransfer(Vessel v, ScienceData d, float boost) { if (v == null) { return(false); } if (d == null) { return(false); } if (v.loaded) { List <ModuleScienceContainer> containers = v.FindPartModulesImplementing <ModuleScienceContainer>(); if (containers.Count <= 0) { return(false); } ModuleScienceContainer currentContainer = null; for (int j = containers.Count - 1; j >= 0; j--) { ModuleScienceContainer container = containers[j]; if (container.capacity != 0 && container.GetData().Length >= container.capacity) { continue; } if (container.allowRepeatedSubjects) { currentContainer = container; break; } if (container.HasData(d)) { continue; } currentContainer = container; } if (currentContainer != null) { d.triggered = false; d.dataAmount *= (d.baseTransmitValue * (1 + boost)); d.transmitBonus = 1; d.baseTransmitValue = 1; return(currentContainer.AddData(d)); } } else { List <ProtoPartSnapshot> containers = getProtoContainers(v.protoVessel); if (containers.Count <= 0) { return(false); } ProtoPartModuleSnapshot currentContainer = null; uint host = 0; for (int j = containers.Count - 1; j >= 0; j--) { ProtoPartSnapshot container = containers[j]; host = container.flightID; ProtoPartModuleSnapshot tempContainer = null; for (int k = container.modules.Count - 1; k >= 0; k--) { ProtoPartModuleSnapshot mod = container.modules[k]; if (mod.moduleName != "ModuleScienceContainer") { continue; } tempContainer = mod; break; } if (tempContainer == null) { continue; } List <ScienceData> protoData = new List <ScienceData>(); ConfigNode[] science = tempContainer.moduleValues.GetNodes("ScienceData"); for (int l = science.Length - 1; l >= 0; l--) { ConfigNode node = science[l]; protoData.Add(new ScienceData(node)); } Part prefab = container.partInfo.partPrefab; ModuleScienceContainer prefabContainer = prefab.FindModuleImplementing <ModuleScienceContainer>(); if (prefabContainer != null) { if (prefabContainer.capacity != 0 && protoData.Count >= prefabContainer.capacity) { continue; } if (prefabContainer.allowRepeatedSubjects) { currentContainer = tempContainer; break; } if (HasData(d.subjectID, protoData)) { continue; } currentContainer = tempContainer; } } if (currentContainer != null) { d.triggered = false; d.dataAmount = d.dataAmount * (d.baseTransmitValue * (boost + 1)); d.transmitBonus = 1; d.baseTransmitValue = 1; d.container = host; d.Save(currentContainer.moduleValues.AddNode("ScienceData")); return(true); } } return(false); }