private void addExperimentalParts() { AvailablePart partToAdd = PartLoader.getPartInfoByName("MerillCamera"); if (partToAdd != null && !ResearchAndDevelopment.IsExperimentalPart(partToAdd)) { ResearchAndDevelopment.AddExperimentalPart(partToAdd); } }
protected override void OnAccepted() { if (add) { foreach (AvailablePart part in parts) { ResearchAndDevelopment.AddExperimentalPart(part); } } }
private void addExperimentalParts() { AvailablePart ap = ExperimentFactory.getPartForExperiment(ExperimentFactory.KEMINI_EXPERIMENTS, experiment); if (ap != null && !ResearchAndDevelopment.PartModelPurchased(ap)) { NE_Helper.log("Adding experimental part: " + ap.name); ResearchAndDevelopment.AddExperimentalPart(ap); } }
protected void UnlockParts() { foreach (AvailablePart part in parts) { ProtoTechNode techNode = ResearchAndDevelopment.Instance.GetTechState(part.TechRequired); if (techNode == null || techNode.state != RDTech.State.Available) { ResearchAndDevelopment.AddExperimentalPart(part); } } }
private static void ExperimentalPart(string partName, int count) { System.StartIgnoringEvents(); var partInfo = PartLoader.getPartInfoByName(partName); if (partInfo != null) { var currentExperimentalParts = Traverse.Create(ResearchAndDevelopment.Instance).Field <Dictionary <AvailablePart, int> >("experimentalPartsStock").Value; if (currentExperimentalParts.TryGetValue(partInfo, out var currentCount)) { if (currentCount > count) { ResearchAndDevelopment.RemoveExperimentalPart(partInfo); } else if (currentCount < count) { ResearchAndDevelopment.AddExperimentalPart(partInfo); } } else { ResearchAndDevelopment.AddExperimentalPart(partInfo); } } //Refresh RD nodes in case we are in the RD screen if (RDController.Instance && RDController.Instance.partList) { RDController.Instance.partList.Refresh(); RDController.Instance.UpdatePanel(); } //Refresh the part list in case we are in the VAB/SPH if (EditorPartList.Instance) { EditorPartList.Instance.Refresh(); } System.StopIgnoringEvents(); LunaLog.Log($"Experimental part received part: {partName} count {count}"); }
private void addExperimentalPart(string sExperimentalPartName) { MerillData.log("accepted contract with experimental part: " + sExperimentalPartName); if (sExperimentalPartName != null) { AvailablePart experimentalPart = PartLoader.getPartInfoByName(sExperimentalPartName); MerillData.log("experimental part: " + experimentalPart + ", " + (experimentalPart == null ? "" : "" + ResearchAndDevelopment.IsExperimentalPart(experimentalPart))); if (experimentalPart != null && !ResearchAndDevelopment.IsExperimentalPart(experimentalPart)) { MerillData.log(": Unlocking part: " + sExperimentalPartName); ResearchAndDevelopment.AddExperimentalPart(experimentalPart); //expPartToRemove.Add(experimentalPart.name); } else { MerillData.log(": Part unvailable / already research: " + sExperimentalPartName); } } }