Example #1
0
        private Game()
        {
            Content.RootDirectory = "Content";
            Window.Title          = "Hero6";
            var services = new MonoGameServiceLocator(Services);

            services.Add <IPlatformInfo, PlatformInfo>();
            services.Add <IServiceLocator>(services);
            services.Add <IFileWrapper, FileWrapper>();
            services.Add <IDirectoryWrapper, DirectoryWrapper>();
            ui = services.Make <MonoGameUserInterfaces>();
            services.Add <IUserInterfaces>(ui);
            gameSettings = new GameSettings(ui);
            services.Add <IGameSettings>(gameSettings);
            var userSettings = services.Make <UserSettings>(typeof(UserSettings));

            services.Add <IUserSettings>(userSettings);
            services.Add <ILoggerCore, LoggerCore>();
            logger = services.Make <Logger>(typeof(Logger));
            services.Add <IMouseCore, MouseCore>();
            services.Add <ILogger>(logger);
            services.Add <IControllerRepository, ControllerRepositoryProvider>();
            services.Add(Content);
            campaigns = services.Make <MonoGameCampaigns>();
            services.Add <ICampaigns>(campaigns);
            services.Add <IMouse, Mouse>();

            var graphics = new GraphicsDeviceManager(this)
            {
                PreferredBackBufferWidth  = userSettings.WindowWidth,
                PreferredBackBufferHeight = userSettings.WindowHeight,
                IsFullScreen    = userSettings.IsFullScreen,
                GraphicsProfile = GraphicsProfile.Reach,
#if ANDROID
                SupportedOrientations = DisplayOrientation.LandscapeLeft | DisplayOrientation.LandscapeRight
#endif
            };

            graphics.DeviceCreated += (s, a) =>
            {
                spriteBatch = new SpriteBatch(GraphicsDevice);
                services.Add(graphics);
                services.Add(spriteBatch);

                logger.Info("Graphics Device Created.");
                logger.Info($"Graphics Adapter Width {GraphicsDevice.Adapter.CurrentDisplayMode.Width}");
                logger.Info($"Graphics Adapter Height {GraphicsDevice.Adapter.CurrentDisplayMode.Height}");
                logger.Info($"Graphics Adapter Aspect Ratio {GraphicsDevice.Adapter.CurrentDisplayMode.AspectRatio}");
                GraphicsDeviceCreated?.Invoke(s, a);
            };

            logger.Info("Hero6 Game Instance Created.");
        }