ARFlightController: Changed the control mask to ALL_SHIP_CONTROLS. Added event listeners to make sure we return control when leaving flight or changing vessels.
AntennaRelay.cs: Changed reference tracking to an IAntennaRelay module, now fetching vessel thence, to avoid stale vessel references. Removed the IAntennaRelay IComparer.
RelayDatabase:
* Added new CheckedVesselsTable to keep track of vessels as we check them instead of relays.
* Added listeners for onVesselDestroy and onPartCouple to improve reliability. Hopefully.
Moved all of the vessel parsing code into the new RelayDatabase, which
watches some events to dirty the cache when states change. Also modules
will no longer offer to transmit if their part is dead or deactivated.
Now maintaining a hash table for ProtoAntennaRelays and using prefab modules to do the maths and stuff, in lieu of messing with persistence and stuff. Also made the error message prettier.
AntennaRange.cfg: Added isAntenna to the part prefab for all parts with ModuleLimitedDataTransmitters.
AntennaRelay.cs: Added a timer to prevent antennas from re-searching their nearest relay multiple times in a single transmission attempt.
Extensions.cs: Remove IsAntenna stuff because we want that to work without persistence data. Doesn't work yet.
ModuleLimitedDataTransmitter.cs:
* Changed DataRate to return a very tiny number if the antenna cannot transmit.
* Changed the transmission message to indictor if it is using a relay or not.
* Removed IsAntenna in favor of using the prefab... hopefully.
* AntennaRelay.cs:
* IAntennaRelay.cs:
* ProtoAntennaRelay.cs: Added new standard header.
* Extensions.cs: Added new standard header. Changed the way
ProtoAntennaRelays are built to give them a reference to their
ProtoPartSnapshot as well.
* ModuleLimitedDataTransmitter.cs: Added new standard header. Changed
the way maxTransmitDistance is fetched; now using partPrefabs to
avoid putting nonsense in the persistence file.
Made the CannotTransmit error a little prettier/more obvious.
A little bit of reorganizing to fit the fields, properties, methods arrangement of the Squad files.
Changed nominalRange back to a float so we can load it from .cfg files.
Put in a hack for DataRate and DataResourceCost so that smaller antennas will be used when possible.
Changed to a direct set of the ModuleDataTransmitter packetSize and packetResourceCost instead of our previous attempt at a dynamic overload that wasn't working.