Пример #1
0
        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));
        }
Пример #2
0
 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));
     }
 }