/// <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); } }
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); }