private void Start() { dialog = gameObject.GetComponentInParent <ExperimentsResultDialog>(); if (dialog == null) { Destroy(gameObject); } if (ScienceRelay.Instance != null) { if (buttonNext != null) { buttonNext.onClick.AddListener(ScienceRelay.Instance.onPageChange); } if (buttonPrev != null) { buttonPrev.onClick.AddListener(ScienceRelay.Instance.onPageChange); } if (buttonTransfer != null) { buttonTransfer.onClick.AddListener(ScienceRelay.Instance.onTransfer); } } onDialogSpawn.Fire(dialog); }
private void ShowResultDialog(ScienceData data) { Log.Info("ShowResultDialog"); ScienceLabSearch labSearch = new ScienceLabSearch(FlightGlobals.ActiveVessel, data); _expDialog = ExperimentsResultDialog.DisplayResult(new ExperimentResultDialogPage( FlightGlobals.ActiveVessel.rootPart, data, data.baseTransmitValue, data.transmitBonus, false, string.Empty, false, labSearch, OnDiscardData, OnKeepData, OnTransmitData, OnSendToLab)); ScienceSubject subjectByID = ResearchAndDevelopment.GetSubjectByID(data.subjectID); var refValue = ResearchAndDevelopment.GetReferenceDataValue(data.dataAmount, subjectByID) * HighLogic.CurrentGame.Parameters.Career.ScienceGainMultiplier; var scienceValue = ResearchAndDevelopment.GetScienceValue(data.dataAmount, data.scienceValueRatio, subjectByID, 1f) * HighLogic.CurrentGame.Parameters.Career.ScienceGainMultiplier; //Log.Info("ShowResultDialog, data: " + data.title + ", labValue: " + data.labValue + ", dataAmount: " + data.dataAmount + ", scienceValueRatio: " + data.scienceValueRatio + " ,baseTransmitValue: " + data.baseTransmitValue + ", transmitBonus: " + data.transmitBonus + " ::: data.subjectID: " + data.subjectID + ", data.dataAmount: " + data.dataAmount + ", subjectByID: " + subjectByID.id + ", subjectByID.dataScale: " + subjectByID.dataScale + ", subjectByID.subjectValue: " + subjectByID.subjectValue + ", HighLogic.CurrentGame.Parameters.Career.ScienceGainMultiplier: " + HighLogic.CurrentGame.Parameters.Career.ScienceGainMultiplier + ", refValue: " + refValue + ", scienceValue: " + scienceValue); }
public void ReviewData() { if (science_data != null) { if (merdp == null || !data_gend) { ExperimentsResultDialog.DisplayResult(merdp = new ModableExperimentResultDialogPage( base.part, this.science_data, this.science_data.transmitValue, 0, false, "", true, false, new Callback <ScienceData>(this.endExperiment), new Callback <ScienceData>(this.keepData), new Callback <ScienceData>(this.sendDataToComms), new Callback <ScienceData>(this.sendDataToLab))); merdp.setUpScienceData(result_title, result_string, transmit_value, recovery_value, data_size, xmit_scalar, ref_value); } else { ExperimentsResultDialog.DisplayResult(merdp); } } else { ResetExperiment(); } }
private void onTransmitData(ScienceData data) { results = null; if (handler == null) { return; } IScienceDataTransmitter bestTransmitter = ScienceUtil.GetBestTransmitter(vessel); if (bestTransmitter != null) { SEP_Utilities.log("Sending data to vessel comms: {0}", logLevels.log, data.title); bestTransmitter.TransmitData(new List <ScienceData> { data }); DumpData(data); } else if (CommNet.CommNetScenario.CommNetEnabled) { ScreenMessages.PostScreenMessage("No usable, in-range Comms Devices on this vessel. Cannot Transmit Data.", 3f, ScreenMessageStyle.UPPER_CENTER); } else { ScreenMessages.PostScreenMessage("No Comms Devices on this vessel. Cannot Transmit Data.", 3f, ScreenMessageStyle.UPPER_CENTER); } }
public void ReviewDataItem(ScienceData sd) { ImpactMonitor.Log("Reviewing data from seismomenter"); ScienceLabSearch labSearch = new ScienceLabSearch(null, sd); expDialog = ExperimentsResultDialog.DisplayResult(new ExperimentResultDialogPage(part, sd, 1f, 0f, false, "", true, labSearch, DumpData, KeepData, TransmitData, null)); }
[KSPEvent(guiName = "#LOC_KSPIE_ScienceGenerator_ReviewData", active = true, guiActive = true)]//Review Data public void ReviewData() { if (science_data != null) { if (merdp == null || !data_gend) { merdp = new ExperimentResultDialogPage( part, science_data, 1f, 0f, false, "", true, new ScienceLabSearch(vessel, science_data), endExperiment, keepData, sendDataToComms, sendDataToLab); } ExperimentsResultDialog.DisplayResult(merdp); } else { ResetExperiment(); } }
private void onTransmitData(ScienceData data) { results = null; if (handler == null) { return; } IScienceDataTransmitter bestTransmitter = ScienceUtil.GetBestTransmitter(vessel); if (bestTransmitter != null) { SEP_Utilities.log("Sending data to vessel comms: {0}", logLevels.log, data.title); bestTransmitter.TransmitData(new List <ScienceData> { data }); DumpData(data); } else if (CommNet.CommNetScenario.CommNetEnabled) { ScreenMessages.PostScreenMessage(Localizer.Format("#autoLOC_237738"), 3f, ScreenMessageStyle.UPPER_CENTER); } else { ScreenMessages.PostScreenMessage(Localizer.Format("#autoLOC_237740"), 3f, ScreenMessageStyle.UPPER_CENTER); } }
private void experimentResultsPage(ScienceData data) { if (scienceReports.Count > 0) { ExperimentResultDialogPage page = new ExperimentResultDialogPage(part, data, transmitValue, ModuleScienceLab.GetBoostForVesselData(vessel, data), false, "", true, new ScienceLabSearch(vessel, data), new Callback <ScienceData>(onDiscardData), new Callback <ScienceData>(onKeepData), new Callback <ScienceData>(onTransmitData), new Callback <ScienceData>(onSendToLab)); ExperimentsResultDialog.DisplayResult(page); } }
public void DumpData(ScienceData data) { expDialog = null; while (storedData.Contains(data)) { storedData.Remove(data); } }
private void experimentResultsPage(ScienceData data) { if (scienceReports.Count > 0) { ExperimentResultDialogPage page = new ExperimentResultDialogPage(part, data, data.baseTransmitValue, data.transmitBonus, false, "", true, new ScienceLabSearch(vessel, data), new Callback <ScienceData>(onDiscardData), new Callback <ScienceData>(onKeepData), new Callback <ScienceData>(onTransmitData), new Callback <ScienceData>(onSendToLab)); resultsDialog = ExperimentsResultDialog.DisplayResult(page); } }
private void Awake() { if (loaded) { Destroy(gameObject); return; } if (loadedPrefabs == null) { string path = KSPUtil.ApplicationRootPath + "GameData/SurfaceExperimentPackage/Resources"; AssetBundle prefabs = AssetBundle.LoadFromFile(path + "/sep_prefab"); if (prefabs != null) { loadedPrefabs = prefabs.LoadAllAssets <GameObject>(); } } if (loadedPrefabs != null) { if (!TMPLoaded) { processTMPPrefabs(); } if (UISkinManager.defaultSkin != null && !UILoaded) { if (sliderFrontForeground == null || sliderBackBackground == null || sliderBackForeground == null) { ExperimentsResultDialog scienceDialogPrefab = UnityEngine.Object.Instantiate <GameObject>(AssetBase.GetPrefab("ScienceResultsDialog")).GetComponent <ExperimentsResultDialog>(); if (scienceDialogPrefab != null) { Slider[] sliders = scienceDialogPrefab.GetComponentsInChildren <Slider>();; Slider backSlider = sliders[0]; Slider frontSlider = sliders[1]; sliderBackBackground = processSliderSprites(backSlider, true, ref sliderBackBackColor); sliderBackForeground = processSliderSprites(backSlider, false, ref sliderBackForeColor); sliderFrontForeground = processSliderSprites(frontSlider, false, ref sliderFrontForeColor); } } processUIPrefabs(); } } if (TMPLoaded && UILoaded) { loaded = true; } Destroy(gameObject); }
/* These methods handle generating and interacting with the science results page */ private void newResultPage() { if (dataList.Count > 0) { ScienceData data = dataList[0]; ExperimentResultDialogPage page = new ExperimentResultDialogPage(part, data, data.baseTransmitValue, 0, !rerunnable, transmitWarningText, true, new ScienceLabSearch(vessel, data), new Callback <ScienceData>(onDiscardData), new Callback <ScienceData>(onKeepData), new Callback <ScienceData>(onTransmitData), new Callback <ScienceData>(onSendToLab)); resultsDialog = ExperimentsResultDialog.DisplayResult(page); } }
private void onDiscardData(ScienceData data) { resultsDialog = null; if (dataList.Count > 0) { dataList.Remove(data); Deployed = false; } }
private void initialResultsPage() { if (scienceReports.Count > 0) { ScienceData data = scienceReports[0]; ExperimentResultDialogPage page = new ExperimentResultDialogPage(part, data, data.transmitValue, labDataBoost, (experimentsReturned >= (experimentLimit - 1)) && !rerunnable, transmitWarningText, true, data.labBoost < 1 && checkLabOps() && xmitDataScalar < 1, new Callback <ScienceData>(onDiscardInitialData), new Callback <ScienceData>(onKeepInitialData), new Callback <ScienceData>(onTransmitInitialData), new Callback <ScienceData>(onSendInitialToLab)); ExperimentsResultDialog.DisplayResult(page); } }
public void DumpData(ScienceData data) { print("[SCANsat] dumping data"); expDialog = null; while (storedData.Contains(data)) { storedData.Remove(data); } }
private void onDiscardData(ScienceData data) { resultsDialog = null; if (scienceReports.Count > 0) { scienceReports.Clear(); Deployed = false; } }
private void onDiscardData(ScienceData data) { results = null; if (handler == null) { return; } if (handler.GetData().Contains(data)) { handler.removeData(data); } }
public void TakeKometSample() { ScienceExperiment experiment = ResearchAndDevelopment.GetExperiment(kometExperimentID); ScienceSubject subject = ResearchAndDevelopment.GetExperimentSubject(experiment, ScienceUtil.GetExperimentSituation(part.vessel), part.vessel.mainBody, string.Empty, string.Empty); //Create science data. ScienceData data = new ScienceData(experiment.baseValue, scienceXmitScalar, 1f, subject.id, subject.title); //Show results ScienceLabSearch labSearch = new ScienceLabSearch(this.part.vessel, data); ExperimentResultDialogPage page = new ExperimentResultDialogPage(part, data, data.baseTransmitValue, data.transmitBonus, false, "", true, labSearch, resetExperiment, keepResults, null, null); ExperimentsResultDialog dlg = ExperimentsResultDialog.DisplayResult(page); }
public void ReviewData() { if (storedData.Count < 1) { return; } if (expDialog != null) { DestroyImmediate(expDialog); } ScienceData sd = storedData[0]; expDialog = ExperimentsResultDialog.DisplayResult(new ExperimentResultDialogPage(part, sd, 1f, 0f, false, "", true, false, DumpData, KeepData, TransmitData, null)); }
private void onSendToLab(ScienceData data) { resultsDialog = null; ScienceLabSearch labSearch = new ScienceLabSearch(vessel, data); if (labSearch.NextLabForDataFound) { StartCoroutine(labSearch.NextLabForData.ProcessData(data, null)); DumpData(data); } else { labSearch.PostErrorToScreen(); } }
public System.Collections.IEnumerator ReviewDataCoroutine(ScienceData data) { yield return(new WaitForEndOfFrame()); ExperimentResultDialogPage page = new ExperimentResultDialogPage(FlightGlobals.ActiveVessel.rootPart, data, 1.0f, 0, false, "", false, false, new Callback <ScienceData>(_onPageDiscard), new Callback <ScienceData>(_onPageKeep), new Callback <ScienceData>(_onPageTransmit), new Callback <ScienceData>(_onPageSendToLab)); page.scienceValue = 0.0f; ExperimentsResultDialog dialog = ExperimentsResultDialog.DisplayResult(page); progressStyle = dialog.guiSkin.customStyles.Where(n => n.name == "progressBarFill2").First(); progressStyle.fixedWidth = 0.1f; progressStyle.border = new RectOffset(0, 0, 0, 0); progressStyle.overflow = new RectOffset(0, 0, 0, 0); //progressStyleBGCopy = new Texture2D(progressStyle.normal.background.width, progressStyle.normal.background.height); //progressStyleBGCopy = progressStyle.normal.background; //if (!fullRecovery) if (!dataAsteroid) { GUIStyle style = dialog.guiSkin.box; styleDefault = style.normal; styleStored = style; skinStored = dialog.guiSkin; print("Attempting to access " + CactEyeVars.root + storedPath); if (System.IO.File.Exists(CactEyeVars.root + storedPath)) { WWW www = new WWW("file://" + CactEyeVars.root + storedPath); yield return(www); www.LoadImageIntoTexture(tex); style.normal.background = tex; dialog.guiSkin.window.fixedWidth = 587f; style.fixedWidth = 512f; style.fixedHeight = 288f; page.resultText = "Screenshot saved to " + storedPath; } else { print("Unable to find " + storedPath + " !"); } } }
private void TransmitData(ScienceData data) { expDialog = null; List <IScienceDataTransmitter> tranList = vessel.FindPartModulesImplementing <IScienceDataTransmitter>(); if (tranList.Count > 0 && storedData.Count > 0) { makeScienceData(false); tranList.OrderBy(ScienceUtil.GetTransmitterScore).First().TransmitData(storedData); DumpData(storedData[0]); } else { ScreenMessages.PostScreenMessage("No transmitters available on this vessel.", 4f, ScreenMessageStyle.UPPER_LEFT); } }
private void OnSendToLab(ScienceData data) { _expDialog = null; ScienceLabSearch labSearch = new ScienceLabSearch(FlightGlobals.ActiveVessel, data); if (labSearch.NextLabForDataFound) { StartCoroutine(labSearch.NextLabForData.ProcessData(data)); DumpData(data); } else { labSearch.PostErrorToScreen(); //UpdateUI(); } }
public void ReviewData() { if (handler == null) { return; } if (handler.GetScienceCount() <= 0) { return; } ScienceData data = handler.GetData()[0]; results = ExperimentsResultDialog.DisplayResult(new ExperimentResultDialogPage(part, data, data.baseTransmitValue, data.transmitBonus, false, transmitWarningText, true, new ScienceLabSearch(vessel, data), new Callback <ScienceData>(onDiscardData), new Callback <ScienceData>(onKeepData), new Callback <ScienceData>(onTransmitData), new Callback <ScienceData>(onSendToLab))); }
private void onClose(ExperimentsResultDialog dialog) { if (dialog == null || resultsDialog == null) { return; } if (dialog == resultsDialog) { resultsDialog = null; transferButton = null; currentPage = null; } popupDismiss(); }
private void ShowResultDialog(ScienceData data) { ScienceLabSearch labSearch = new ScienceLabSearch(FlightGlobals.ActiveVessel, data); _expDialog = ExperimentsResultDialog.DisplayResult(new ExperimentResultDialogPage( FlightGlobals.ActiveVessel.rootPart, data, data.baseTransmitValue, data.transmitBonus, false, string.Empty, false, labSearch, OnDiscardData, OnKeepData, OnTransmitData, OnSendToLab)); }
public void ReviewDataItem(ScienceData data) { ScienceLabSearch labSearch = new ScienceLabSearch(FlightGlobals.ActiveVessel, data); ExperimentResultDialogPage page = new ExperimentResultDialogPage( part, data, xmitDataScalar, data.labBoost, true, "If you transmit this data it will only be worth: " + Mathf.Round(data.transmitValue * 100) + "% of the full science value", true, labSearch, _onPageDiscard, _onPageKeep, _onPageTransmit, _onPageSendToLab); ExperimentsResultDialog.DisplayResult(page); }
public void ReviewDataItem(ScienceData data) { ScienceLabSearch labSearch = new ScienceLabSearch(FlightGlobals.ActiveVessel, data); ExperimentResultDialogPage page = new ExperimentResultDialogPage( part, data, xmitDataScalar, data.transmitBonus, true, Localizer.Format("#autoLOC_TST_0051", Mathf.Round(data.baseTransmitValue * 100)), true, labSearch, _onPageDiscard, _onPageKeep, _onPageTransmit, _onPageSendToLab); ExperimentsResultDialog.DisplayResult(page); }
public void TransmitData(ScienceData data) { expDialog = null; List <IScienceDataTransmitter> tranList = vessel.FindPartModulesImplementing <IScienceDataTransmitter>(); if (tranList.Count > 0 && result != null) { List <ScienceData> list2 = new List <ScienceData>(); list2.Add(result); tranList.OrderBy(ScienceUtil.GetTransmitterScore).First().TransmitData(list2); ImpactMonitor.getInstance().scienceToKSC(result); DumpData(result); } else { ScreenMessages.PostScreenMessage(Localizer.Format("#autoLOC_Screen_NoTrans"), 4f, ScreenMessageStyle.UPPER_LEFT); } }
public void ReviewDataItem(ScienceData data) { ScienceLabSearch labSearch = new ScienceLabSearch(FlightGlobals.ActiveVessel, data); ExperimentResultDialogPage page = new ExperimentResultDialogPage( part, data, data.baseTransmitValue, data.transmitBonus, true, Localizer.Format("#autoLOC_TST_0051", Mathf.Round(data.baseTransmitValue * 100)), //#autoLOC_TST_0051 = If you transmit this data it will only be worth: <<1>>% of the full science value true, labSearch, _onPageDiscard, _onPageKeep, _onPageTransmit, _onPageSendToLab); ExperimentsResultDialog.DisplayResult(page); }
public void DumpData(ScienceData data) { expDialog = null; result = null; }
public void KeepData(ScienceData data) { expDialog = null; }
private void TransmitData(ScienceData data) { expDialog = null; List<IScienceDataTransmitter> tranList = vessel.FindPartModulesImplementing<IScienceDataTransmitter>(); if (tranList.Count > 0 && storedData.Count > 0) { makeScienceData(false); tranList.OrderBy(ScienceUtil.GetTransmitterScore).First().TransmitData(storedData); DumpData(storedData[0]); } else ScreenMessages.PostScreenMessage("No transmitters available on this vessel.", 4f, ScreenMessageStyle.UPPER_LEFT); }
public void TransmitData(ScienceData data) { print("[SCANsat] transmitting data"); expDialog = null; if(!storedData.Contains(data)) return; foreach(IScienceDataTransmitter t in vessel.FindPartModulesImplementing<IScienceDataTransmitter>()) { if(t.CanTransmit()) { if(!t.IsBusy()) { makeScienceData(false); // just to update values... t.TransmitData(storedData); storedData = new List<ScienceData>(); break; } } } }
public void ReviewData() { if (storedData.Count < 1) return; if (expDialog != null) DestroyImmediate(expDialog); ScienceData sd = storedData[0]; expDialog = ExperimentsResultDialog.DisplayResult(new ExperimentResultDialogPage(part, sd, 1f, 0f, false, "", true, false, DumpData, KeepData, TransmitData, null)); }
public void TransmitData(ScienceData data) { expDialog = null; List<IScienceDataTransmitter> tranList = vessel.FindPartModulesImplementing<IScienceDataTransmitter>(); if (tranList.Count > 0 && result!=null) { List<ScienceData> list2 = new List<ScienceData>(); list2.Add(result); tranList.OrderBy(ScienceUtil.GetTransmitterScore).First().TransmitData(list2); ImpactMonitor.getInstance().scienceToKSC(result); DumpData(result); } else ScreenMessages.PostScreenMessage("No transmitters available on this vessel.", 4f, ScreenMessageStyle.UPPER_LEFT); }
public void KeepData( ScienceData data ) { print ("[SCANsat] keeping data"); expDialog = null; }
public void ReviewDataItem(ScienceData sd) { ScienceLabSearch labSearch = new ScienceLabSearch(null, sd); expDialog = ExperimentsResultDialog.DisplayResult(new ExperimentResultDialogPage(part, sd, 1f, 0f, false, "", true, labSearch, DumpData, KeepData, TransmitData, null)); }
public void DumpData( ScienceData data ) { print ("[SCANsat] dumping data"); expDialog = null; while (storedData.Contains(data)) { storedData.Remove (data); } }
public void ReviewDataItem(ScienceData sd) { ImpactMonitor.Log("Reviewing data from seismomenter"); ScienceLabSearch labSearch = new ScienceLabSearch(null,sd); expDialog = ExperimentsResultDialog.DisplayResult(new ExperimentResultDialogPage(part, sd, 1f, 0f, false, "", true, labSearch, DumpData, KeepData, TransmitData, null)); }
private void KeepData(ScienceData data) { expDialog = null; }