Changed to a direct set of the ModuleDataTransmitter packetSize and packetResourceCost instead of our previous attempt at a dynamic overload that wasn't working.
Changed to a direct set of the ModuleDataTransmitter packetSize and packetResourceCost instead of our previous attempt at a dynamic overload that wasn't working.

It seems to be working now!

--- a/AntennaRange.cs
+++ b/AntennaRange.cs
@@ -11,8 +11,7 @@
  * This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. To view a

  * copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/

  * 

- * This software uses the ModuleManager library © 2013 ialdabaoth, used under a Creative Commons Attribution-ShareAlike

- * 3.0 Uported License.

+ * This software uses the ModuleManager library © 2013 ialdabaoth, used under a Creative Commons Attribution-ShareAlike 3.0 Uported License.

  * 

  */

 

@@ -34,10 +33,8 @@
 	 * where D is the total transmission distance, P is the transmission power, and R is the data rate.

 	 * 

 	 * */

-	public class ModuleLimitedDataTransmitter : PartModule, IScienceDataTransmitter

+	public class ModuleLimitedDataTransmitter : ModuleDataTransmitter, IScienceDataTransmitter

 	{

-		protected ModuleDataTransmitter dataTransmitter = null;

-

 		// Stores the packetResourceCost as defined in the .cfg file.

 		protected float _basepacketResourceCost;

 

@@ -45,7 +42,7 @@
 		protected float _basepacketSize;

 

 		// We don't have a Bard, so we're hiding Kerbin here.

-		protected CelestialBody _Kerbin = null;

+		protected CelestialBody _Kerbin;

 

 		// Returns the current distance to the center of Kerbin, which is totally where the Kerbals keep their radioes.

 		protected double transmitDistance

@@ -82,31 +79,14 @@
 		[KSPField(isPersistant = false)]

 		public float maxDataFactor = 4f;

 

-		public float DataRate

-		{

-			get

-			{

-				return dataTransmitter.DataRate;

-			}

-		}

-

-		public double DataResourceCost

-		{

-			get

-			{

-				return dataTransmitter.DataRate;

-			}

-		}

-

 		// Build ALL the objects.

-		public ModuleLimitedDataTransmitter () : base()

-		{

-			dataTransmitter = new ModuleDataTransmitter ();

-		}

-

-		public override void OnStart(PartModule.StartState state)

-		{

-			if (state >= PartModule.StartState.PreLaunch && this._Kerbin == null)

+		public ModuleLimitedDataTransmitter () : base() { }

+

+		public override void OnStart (StartState state)

+		{

+			base.OnStart (state);

+

+			if (state >= StartState.PreLaunch && this._Kerbin == null)

 			{

 				// Go fetch Kerbin, because it is tricksy and hides from us.

 				List<CelestialBody> bodies = FlightGlobals.Bodies;

@@ -124,128 +104,142 @@
 

 		public override void OnLoad(ConfigNode node)

 		{

-			dataTransmitter.OnLoad (node);

-			this._basepacketSize = dataTransmitter.packetSize;

-			this._basepacketResourceCost = dataTransmitter.packetResourceCost;

+			base.OnLoad (node);

+			this._basepacketSize = base.packetSize;

+			this._basepacketResourceCost = base.packetResourceCost;

 		}

 

 		// Post an error in the communication messages describing the reason transmission has failed.  Currently there

 		// is only one reason for this.

 		protected void PostCannotTransmitError()

 		{

-			string ErrorText = String.Format(

+			string ErrorText = string.Format (

 				"Unable to transmit: out of range!  Maximum range = {0}; Current range = {1}.",

 				this.maxTransmitDistance,

-				this.transmitDistance

-				);

+				this.transmitDistance);

 			ScreenMessages.PostScreenMessage (new ScreenMessage (ErrorText, 4f, ScreenMessageStyle.UPPER_LEFT));

 		}

 

-		protected void PreTransmit_SetpacketSize()

+		protected void PreTransmit_SetPacketResourceCost()

+		{

+			if (this.transmitDistance <= this.nominalRange)

+			{

+				base.packetResourceCost = this._basepacketResourceCost;

+			}

+			else

+			{

+				base.packetResourceCost = this._basepacketResourceCost

+					* (float)Math.Pow (this.transmitDistance / this.nominalRange, 2);

+			}

+		}

+

+		protected void PreTransmit_SetPacketSize()

 		{

 			if (this.transmitDistance >= this.nominalRange)

 			{

-				dataTransmitter.packetSize = this._basepacketSize;

-			}

-			else

-			{

-				// From above, data rate increases with the inverse square of the distance.

-				dataTransmitter.packetSize = Math.Min(this._basepacketSize

-				                           * (float)Math.Pow(this.nominalRange / this.transmitDistance, 2),

-				                           this._basepacketSize * this.maxDataFactor);

-			}

-		}

-

-		protected void PreTransmit_SetpacketResourceCost()

-		{

-			if (this.transmitDistance <= this.nominalRange)

-			{

-				dataTransmitter.packetResourceCost = this._basepacketResourceCost;

-			}

-			else

-			{

-				// From above, power increases with the square of the distance.

-				dataTransmitter.packetResourceCost = this._basepacketResourceCost

-					* (float)Math.Pow (this.transmitDistance / this.nominalRange, 2);

+				base.packetSize = this._basepacketSize;

+			}

+			else

+			{

+				base.packetSize = Math.Min (

+					this._basepacketSize * (float)Math.Pow (this.nominalRange / this.transmitDistance, 2),

+					this._basepacketSize * this.maxDataFactor);

 			}

 		}

 

 		// Override ModuleDataTransmitter.GetInfo to add nominal and maximum range to the VAB description.

 		public override string GetInfo()

 		{

-			string text = dataTransmitter.GetInfo();

+			string text = base.GetInfo();

 			text += "Nominal Range: " + this.nominalRange.ToString() + "\n";

 			text += "Maximum Range: " + this.maxTransmitDistance.ToString() + "\n";

 			return text;

 		}

 

 		// Override ModuleDataTransmitter.CanTransmit to return false when transmission is not possible.

-		public bool CanTransmit()

+		public new bool CanTransmit()

 		{

 			if (this.transmitDistance > this.maxTransmitDistance)

 			{

 				return false;

 			}

 			return true;

-		}

-

-		public bool IsBusy()

-		{

-			return dataTransmitter.IsBusy ();

 		}

 

 		// Override ModuleDataTransmitter.TransmitData to check against CanTransmit and fail out when CanTransmit

 		// returns false.

-		public void TransmitData(List<ScienceData> dataQueue)

-		{

-			dataTransmitter.TransmitData(dataQueue);

-//			this.PreTransmit_SetpacketSize ();

-//			this.PreTransmit_SetpacketResourceCost ();

-//

-//			Tools.PostDebugMessage(

-//				"Attempting to TransmitData. Distance: " + this.transmitDistance.ToString()

-//				+ " packetSize: " + this.packetSize.ToString()

-//				+ " packetResourceCost: " + this.packetResourceCost.ToString()

-//				);

-//			if (this.CanTransmit())

-//			{

-//				base.TransmitData(dataQueue);

-//			}

-//			else

-//			{

-//				this.PostCannotTransmitError ();

-//			}

+		public new void TransmitData(List<ScienceData> dataQueue)

+		{

+			PreTransmit_SetPacketSize ();

+			PreTransmit_SetPacketResourceCost ();

+

+			Tools.PostDebugMessage (

+				"distance: " + this.transmitDistance

+				+ " packetSize: " + this.packetSize

+				+ " packetResourceCost: " + this.packetResourceCost

+			);

+			if (this.CanTransmit())

+			{

+				base.TransmitData(dataQueue);

+			}

+			else

+			{

+				this.PostCannotTransmitError ();

+			}

 		}

 

 		// Override ModuleDataTransmitter.StartTransmission to check against CanTransmit and fail out when CanTransmit

 		// returns false.

-		[KSPEvent (guiName = "Transmit Data", active = true, guiActive = true)]

-		public void StartTransmission()

-		{

-			dataTransmitter.StartTransmission ();

-//			this.PreTransmit_SetpacketSize ();

-//			this.PreTransmit_SetpacketResourceCost ();

-//

-//			Tools.PostDebugMessage(

-//				"Attempting to TransmitData. Distance: " + this.transmitDistance.ToString()

-//				+ " packetSize: " + this.packetSize.ToString()

-//				+ " packetResourceCost: " + this.packetResourceCost.ToString()

-//				);

-//			if (this.CanTransmit())

-//			{

-//				base.StartTransmission();

-//			}

-//			else

-//			{

-//				this.PostCannotTransmitError ();

-//			}

-		}

-

-		[KSPEvent (guiName = "Stop Transmitting", active = true, guiActive = true)]

-		public void StopTransmission()

-		{

-			dataTransmitter.StopTransmission ();

-		}

+		public new void StartTransmission()

+		{

+			PreTransmit_SetPacketSize ();

+			PreTransmit_SetPacketResourceCost ();

+

+			Tools.PostDebugMessage (

+				"distance: " + this.transmitDistance

+				+ " packetSize: " + this.packetSize

+				+ " packetResourceCost: " + this.packetResourceCost

+				);

+			if (this.CanTransmit())

+			{

+				base.StartTransmission();

+			}

+			else

+			{

+				this.PostCannotTransmitError ();

+			}

+		}

+

+		#if DEBUG

+		[KSPEvent (guiName = "Show Debug Info", active = true, guiActive = true)]

+		public void DebugInfo()

+		{

+			PreTransmit_SetPacketSize ();

+			PreTransmit_SetPacketResourceCost ();

+

+			string msg = string.Format(

+				"'{0}'\n" + 

+				"_basepacketSize: {1}\n" +

+				"packetSize: {2}\n" +

+				"_basepacketResourceCost: {3}\n" +

+				"packetResourceCost: {4}\n" +

+				"maxTransmitDistance: {5}\n" +

+				"transmitDistance: {6}\n" +

+				"nominalRange: {7}\n" +

+				"CanTransmit: {8}",

+				this.name,

+				this._basepacketSize,

+				base.packetSize,

+				this._basepacketResourceCost,

+				base.packetResourceCost,

+				this.maxTransmitDistance,

+				this.transmitDistance,

+				this.nominalRange,

+				this.CanTransmit()

+				);

+			ScreenMessages.PostScreenMessage (new ScreenMessage (msg, 30f, ScreenMessageStyle.UPPER_RIGHT));

+		}

+		#endif

 	}

 

 	public static class Tools