==== API for ResearchBodies v1.4 ====

Note on ResearchState :
CelestialBody not present in dictionary => not tracked
0% => Tracked
10% => research plan launched
10% -> 30% => Researching Aspect
40% -> 90% => Aspect researched, researching caracteristics
100% => fully researched

===================


class ResearchBodies : Loaded on space center.
     --> the ModuleTrackBodies class is not using these variables !
void LaunchResearchPlan(CelestialBody)
void LoadBodyLook()
void Research(CelestialBody, int)
Dictionary<CelestialBody, int> ResearchState
void Save()
void StopResearchPlan
Dictionary<CelestialBody, bool> TrackedBodies


class ModuleTrackBodies : PartModule
 --> same ResearchState and TrackedBodies dictionaries
 void SaveCfg()

 > variables to set for adding this module to a part :
 int difficulty <= the bigger this number, the more clicks on the "track bodies" button
 int minAltitude, viewAngle, scienceReward
 double maxTrackDistance, electricChargeRequest
 bool landed <= if the part has to be landed on ground
 bool requiresPart      <= set to false
 string requiredPart    <= set to empty

 
class Locales : Loaded once on game launched

Locale currentLocale
void Save(Locale l) <= saves the cache
List<Locale> locales
void LoadDiscoveryMessages <= updates discovery messages (used when locale changed)


class Locale :

Locale(ConfigNode node) <= Create locale from confignode
string LocaleFull <= full locale name
string LocaleId
Dictionary<string, string> Values


class Database : loaded once on planet system spawn

Dictionary<string,string> DiscoveryMessage <= discovery messages in English
bool allowTSlevel1 <= allow the mod to start or not when tracking station is level 1
List<CelestialBody> IgnoreBodies <= bodies that are discovered by default when starting a new game
List<string> NothingHere <= texts used to say 'there is nothing here' by the telescope
   Other variables are not used anymore.