public override void OnLoad(ConfigNode node) { if (node.GetNodes("InhabitedBody").Count() == 0) { node = DefaultConfiguration(); } foreach (var i in node.GetNodes("InhabitedBody")) { string name = i.GetValue("name"); CelestialBody body = FlightGlobals.Bodies.FirstOrDefault(x => x.name == name); int seed = int.Parse(i.GetValue("seed")); ThreadDispatcher.QueueToWorker(() => { KSPPlanet planet = LoadPlanet(i, body, seed); lock (planets) { planets.Add(planet.Body, planet); } }); } ThreadDispatcher.QueueToWorker(() => ThreadDispatcher.QueueToMainThread(() => PhysicsReady = true)); }
public static void Log(string format, params object[] args) { if (ThreadDispatcher.IsMainThread) { Debug.Log("[ProceduralCities] " + String.Format(format, args).Replace("\n", "\n[ProceduralCities] ")); } else { ThreadDispatcher.QueueToMainThread(() => Log(format, args)); } }