public SimulationManager(ISettings settings, UpdateHub updateHub) { mainLock = new object(); this.settings = settings; this.updateHub = updateHub; TypeContainer.Register <ExtensionLoader>(InstanceBehaviour.Singleton); TypeContainer.Register <IExtensionLoader, ExtensionLoader>(InstanceBehaviour.Singleton); TypeContainer.Register <IExtensionResolver, ExtensionLoader>(InstanceBehaviour.Singleton); TypeContainer.Register <DefinitionManager>(InstanceBehaviour.Singleton); TypeContainer.Register <IDefinitionManager, DefinitionManager>(InstanceBehaviour.Singleton); TypeContainer.Register <DiskPersistenceManager>(InstanceBehaviour.Singleton); TypeContainer.Register <IPersistenceManager, DiskPersistenceManager>(InstanceBehaviour.Singleton); TypeContainer.Register <ResourceManager>(InstanceBehaviour.Singleton); TypeContainer.Register <IResourceManager, ResourceManager>(InstanceBehaviour.Singleton); extensionLoader = TypeContainer.Get <ExtensionLoader>(); extensionLoader.LoadExtensions(); ResourceManager = TypeContainer.Get <ResourceManager>(); ResourceManager.InsertUpdateHub(updateHub); Service = new GameService(ResourceManager); simulation = new Simulation(ResourceManager, extensionLoader, Service) { IsServerSide = true }; backgroundThread = new Thread(SimulationLoop) { Name = "Simulation Loop", IsBackground = true }; }
public SimulationManager(ISettings settings, UpdateHub updateHub) { mainLock = new object(); this.settings = settings; //TODO: Where are the settings? extensionLoader = new ExtensionLoader(settings); extensionLoader.LoadExtensions(); definitionManager = new DefinitionManager(extensionLoader); var persistenceManager = new DiskPersistenceManager(extensionLoader, definitionManager, settings); ResourceManager = new ResourceManager(extensionLoader, definitionManager, settings, persistenceManager); ResourceManager.InsertUpdateHub(updateHub); chunkSubscription = updateHub.Subscribe(ResourceManager.GlobalChunkCache, DefaultChannels.Chunk); ResourceManager.GlobalChunkCache.InsertUpdateHub(updateHub); Service = new GameService(ResourceManager); simulation = new Simulation(ResourceManager, extensionLoader, Service) { IsServerSide = true }; backgroundThread = new Thread(SimulationLoop) { Name = "Simulation Loop", IsBackground = true }; }
public LoaderForm() { InitializeComponent(); Size = new Size(Size.Width, 133); updateTimer.Enabled = true; Task t = new Task(() => { try { string[] pathes = new string[] { Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Extensions", Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\AntMe\\Extensions" }; ExtensionLoader.LoadExtensions(pathes, token, true); Invoke((MethodInvoker) delegate { HandleSuccess(); }); } catch (AggregateException ex) { Invoke((MethodInvoker) delegate { HandleExceptions(ex); }); } }); t.Start(); }
/// <summary> /// Handles the extension loader. /// </summary> private static void HandleExtensionLoader() { IExtensionLoader extensionLoader = new ExtensionLoader(_dependencyUtility); extensionLoader.LoadExtensions(); _dependencyUtility.Register <IExtensionLoader>(extensionLoader); }
public void ExtensionLoaderThrowsExceptionWhenFileDoesNotExist() { string json = "{\"host\":\"0.0.0.0\",\"port\":1337,\"extensions\":{\"extension1\":{\"path\":\"\",\"config\":{\"key\":\"value\"}}}}"; IConfigurationHandler config = GetConfigurationHandler(json, out string path); IDependencyUtility dependencyUtility = new DependencyUtility(); dependencyUtility.Register <ILogger>(new Mock <ILogger>().Object); dependencyUtility.Register <IConfigurationHandler>(config); IExtensionLoader loader = new ExtensionLoader(dependencyUtility); try { Assert.Throws(typeof(ConfigurationItemMissingException), () => loader.LoadExtensions()); } finally { File.Delete(path); } }
public OctoGame() : base() { //graphics = new GraphicsDeviceManager(this); //graphics.PreferredBackBufferWidth = 1080; //graphics.PreferredBackBufferHeight = 720; //Content.RootDirectory = "Content"; Title = "OctoAwesome"; IsMouseVisible = true; Icon = Properties.Resources.octoawesome; //Window.AllowUserResizing = true; Settings = new Settings(); ExtensionLoader = new ExtensionLoader(Settings); ExtensionLoader.LoadExtensions(); Service = new GameService(ResourceManager); //TargetElapsedTime = new TimeSpan(0, 0, 0, 0, 15); int width = Settings.Get("Width", 1080); int height = Settings.Get("Height", 720); Window.ClientSize = new Size(width, height); Window.Fullscreen = Settings.Get("EnableFullscreen", false); if (Settings.KeyExists("Viewrange")) { var viewrange = Settings.Get <int>("Viewrange"); if (viewrange < 1) { throw new NotSupportedException("Viewrange in app.config darf nicht kleiner 1 sein"); } SceneControl.VIEWRANGE = viewrange; } Assets = new AssetComponent(this); Components.Add(Assets); Screen = new ScreenComponent(this); Screen.UpdateOrder = 1; Screen.DrawOrder = 1; Components.Add(Screen); KeyMapper = new KeyMapper(Screen, Settings); #region GameComponents DefinitionManager = new DefinitionManager(ExtensionLoader); //var persistenceManager = new DiskPersistenceManager(ExtensionLoader, DefinitionManager, Settings); //ResourceManager = new ResourceManager(ExtensionLoader, DefinitionManager, Settings, persistenceManager); ResourceManager = new ContainerResourceManager(); Player = new PlayerComponent(this, ResourceManager); Player.UpdateOrder = 2; Components.Add(Player); Simulation = new Components.SimulationComponent(this, ExtensionLoader, ResourceManager); Entity = new Components.EntityComponent(this, Simulation); Entity.UpdateOrder = 2; Components.Add(Entity); Camera = new CameraComponent(this); Camera.UpdateOrder = 3; Components.Add(Camera); Simulation.UpdateOrder = 4; Components.Add(Simulation); #endregion GameComponents /*Resize += (s, e) => * { * //if (Window.ClientBounds.Height == graphics.PreferredBackBufferHeight && * // Window.ClientBounds.Width == graphics.PreferredBackBufferWidth) * // return; * * //graphics.PreferredBackBufferHeight = Window.ClientBounds.Height; * //graphics.PreferredBackBufferWidth = Window.ClientBounds.Width; * //graphics.ApplyChanges(); * };*/ SetKeyBindings(); }