1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | using System; namespace AntennaRange { /* * Wrapper class for ProtoPartModuleSnapshot extending AntennaRelay and implementing IAntennaRelay. * This is used for finding relays in unloaded Vessels. * */ public class ProtoAntennaRelay : AntennaRelay, IAntennaRelay { protected ProtoPartModuleSnapshot snapshot; /// <summary> /// The maximum distance at which this transmitter can operate. /// </summary> /// <value>The max transmit distance.</value> public override float maxTransmitDistance { get { double result; Double.TryParse(snapshot.moduleValues.GetValue ("ARmaxTransmitDistance") ?? "0", out result); return (float)result; } } /// <summary> /// Gets a value indicating whether this <see cref="AntennaRange.ProtoDataTransmitter"/> has been checked during /// the current relay attempt. /// </summary> /// <value><c>true</c> if relay checked; otherwise, <c>false</c>.</value> public override bool relayChecked { get { bool result; Boolean.TryParse(this.snapshot.moduleValues.GetValue("relayChecked"), out result); return result; } protected set { if (this.snapshot.moduleValues.HasValue("relayChecked")) { this.snapshot.moduleValues.SetValue("relayChecked", value.ToString ()); } else { this.snapshot.moduleValues.AddValue("relayChecked", value); } } } /// <summary> /// Initializes a new instance of the <see cref="AntennaRange.ProtoAntennaRelay"/> class. /// </summary> /// <param name="ms">The ProtoPartModuleSnapshot to wrap</param> /// <param name="vessel">The parent Vessel</param> public ProtoAntennaRelay(ProtoPartModuleSnapshot ms, Vessel vessel) : base(vessel) { this.snapshot = ms; } } } |