From 691835832d01fc6f65eb33eb0655bc094a5e3d96 Mon Sep 17 00:00:00 2001 From: Lamont Granquist Date: Tue, 2 Feb 2016 09:13:18 -0800 Subject: [PATCH 1/6] fix science transmission for KSP 1.0.5 As reported here: http://forum.kerbalspaceprogram.com/index.php?/topic/75245-105-remotetech-v169-2015-11-10/&page=150#comment-2285093 Also see, e.g. here: https://github.com/RemoteTechnologiesGroup/RemoteTech/issues/523#issuecomment-178501552 closes #523 closes #520 closes #515 closes #511 --- src/RemoteTech/Modules/ModuleRTDataTransmitter.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs b/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs index f0d7e54f1..2ed81ce4f 100644 --- a/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs +++ b/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs @@ -126,6 +126,7 @@ private IEnumerator Transmit(Callback callback = null) } isBusy = false; msg.message = String.Format("[{0}]: Done!", part.partInfo.title); + GameEvents.OnTriggeredDataTransmission.Fire(scienceData); ScreenMessages.PostScreenMessage(msg, true); if (callback != null) callback.Invoke(); GUIStatus = "Idle"; From 76c80fa668480725467f2869454aaf59b8ff76bb Mon Sep 17 00:00:00 2001 From: Lamont Granquist Date: Tue, 1 Mar 2016 17:25:56 -0800 Subject: [PATCH 2/6] fix scope issue --- src/RemoteTech/Modules/ModuleRTDataTransmitter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs b/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs index 2ed81ce4f..e8149d4c7 100644 --- a/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs +++ b/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs @@ -122,11 +122,11 @@ private IEnumerator Transmit(Callback callback = null) } yield return new WaitForSeconds(PacketInterval); } + GameEvents.OnTriggeredDataTransmission.Fire(scienceData); yield return new WaitForSeconds(PacketInterval * 2); } isBusy = false; msg.message = String.Format("[{0}]: Done!", part.partInfo.title); - GameEvents.OnTriggeredDataTransmission.Fire(scienceData); ScreenMessages.PostScreenMessage(msg, true); if (callback != null) callback.Invoke(); GUIStatus = "Idle"; From 98a3f6a71733f8c5452fbd036a5a71e867227adb Mon Sep 17 00:00:00 2001 From: Lamont Granquist Date: Tue, 1 Mar 2016 17:55:28 -0800 Subject: [PATCH 3/6] try to fix the NRE, probably wrong --- src/RemoteTech/Modules/ModuleRTDataTransmitter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs b/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs index e8149d4c7..aba5756cc 100644 --- a/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs +++ b/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs @@ -91,7 +91,7 @@ private IEnumerator Transmit(Callback callback = null) } //StartCoroutine(SetFXModules_Coroutine(modules_progress, 0.0f)); float power = 0; - while (packets > 0) + while (packets > 1) { power += part.RequestResource("ElectricCharge", PacketResourceCost - power); if (power >= PacketResourceCost * 0.95) From 28b9df809a27aedcfb3406cac957df9d28a6be15 Mon Sep 17 00:00:00 2001 From: Lamont Granquist Date: Tue, 8 Mar 2016 07:20:28 -0800 Subject: [PATCH 4/6] better NRE fix from FancyMouse --- src/RemoteTech/Modules/ModuleRTDataTransmitter.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs b/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs index aba5756cc..2d3dbc3bc 100644 --- a/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs +++ b/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs @@ -40,7 +40,7 @@ public override void OnSave(ConfigNode node) { scienceDataQueue.ForEach(d => d.Save(node.AddNode("CommsData"))); } - + bool IScienceDataTransmitter.CanTransmit() { return true; @@ -73,11 +73,14 @@ private IEnumerator Transmit(Callback callback = null) var scienceData = scienceDataQueue[0]; var dataAmount = scienceData.dataAmount; scienceDataQueue.RemoveAt(0); + scienceData.triggered = true; var subject = ResearchAndDevelopment.GetSubjectByID(scienceData.subjectID); + if (subject == null) + subject = new ScienceSubject("", "", 1, 0, 0); int packets = Mathf.CeilToInt(scienceData.dataAmount / PacketSize); if (ResearchAndDevelopment.Instance != null) { - // pre calculate the time interval - fix for x64 systems + // pre calculate the time interval - fix for x64 systems // workaround for issue #136 float time1 = Time.time; yield return new WaitForSeconds(PacketInterval); @@ -91,7 +94,7 @@ private IEnumerator Transmit(Callback callback = null) } //StartCoroutine(SetFXModules_Coroutine(modules_progress, 0.0f)); float power = 0; - while (packets > 1) + while (packets > 0) { power += part.RequestResource("ElectricCharge", PacketResourceCost - power); if (power >= PacketResourceCost * 0.95) From 10c305885e86517efc7192011320048c387a30d0 Mon Sep 17 00:00:00 2001 From: Lamont Granquist Date: Tue, 8 Mar 2016 07:21:08 -0800 Subject: [PATCH 5/6] fix indentation --- src/RemoteTech/Modules/ModuleRTDataTransmitter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs b/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs index 2d3dbc3bc..34e4977ea 100644 --- a/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs +++ b/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs @@ -80,7 +80,7 @@ private IEnumerator Transmit(Callback callback = null) int packets = Mathf.CeilToInt(scienceData.dataAmount / PacketSize); if (ResearchAndDevelopment.Instance != null) { - // pre calculate the time interval - fix for x64 systems + // pre calculate the time interval - fix for x64 systems // workaround for issue #136 float time1 = Time.time; yield return new WaitForSeconds(PacketInterval); From a9ea02bf353255fb18de8f94cfd0d60a72952312 Mon Sep 17 00:00:00 2001 From: Lamont Granquist Date: Sun, 10 Apr 2016 10:35:50 -0700 Subject: [PATCH 6/6] update for 1.1 --- src/RemoteTech/Modules/ModuleRTDataTransmitter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs b/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs index 34e4977ea..cadd03790 100644 --- a/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs +++ b/src/RemoteTech/Modules/ModuleRTDataTransmitter.cs @@ -125,7 +125,7 @@ private IEnumerator Transmit(Callback callback = null) } yield return new WaitForSeconds(PacketInterval); } - GameEvents.OnTriggeredDataTransmission.Fire(scienceData); + GameEvents.OnTriggeredDataTransmission.Fire(scienceData, vessel, false); yield return new WaitForSeconds(PacketInterval * 2); } isBusy = false;