Пример #1
0
        /// <summary>
        /// Refreshes the catalog and initializes all simulators with the host (Telemetry class).
        /// </summary>
        private void Refresh()
        {
            try
            {
                var catalog = new DirectoryCatalog(Telemetry.m.binaryDirectory + "simulators/", "SimTelemetry.Game.*.dll");
                catalog.Refresh();
                var container = new CompositionContainer(catalog);
                container.ComposeParts(this);

                foreach (ISimulator sim in Sims)
                {
                    sim.Host = Telemetry.m;
                    sim.Initialize();
                }

                if (Network != null)
                {
                    throw new Exception("Network already added");
                }
                Network = new NetworkGame {
                    Host = Telemetry.m
                };
                Network.Initialize();

                Sims.Add(Network);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Failed loading assemblies");
                Debug.WriteLine(ex.Message);
                Debug.WriteLine(ex.StackTrace);
            }
        }
Пример #2
0
        public SimData GetSim(SimDescription sim)
        {
            SimID id = new SimID(sim);

            SimData data;

            if (!Sims.TryGetValue(id, out data))
            {
                data = new SimData(sim);

                Sims.Add(id, data);

                mSimData.Add(data);
            }

            data.SetSimDescription(sim);

            return(data);
        }