public override void OnEntry(GameTime gameTime) { DevConsole.OnNewCommand += DevConsole_OnNewCommand; KeyboardEventDispatcher.OnKeyPressed += KeyboardEventDispatcher_OnKeyPressed; input.Refresh(); sP.Hook(); sS.Hook(); sT.Hook(); RendererInitArgs ria = ZXParser.ParseFile(@"Content\FX\RIA.txt", typeof(RendererInitArgs)) as RendererInitArgs; renderer = new RTSRenderer(game.Graphics, game.Content, ria, game.Window); // Rendering Effect fx = new RTSFXEntity(renderer.LoadEffect(FX_FILE_PATH)); // Default Team sP.Color = RTSColorScheme.Default.Primary; sS.Color = RTSColorScheme.Default.Secondary; sT.Color = RTSColorScheme.Default.Tertiary; colorScheme.Name = RTSColorScheme.Default.Name; // Create Camera camera = new OrbitingCamera(Vector3.Zero, 4f, G.Viewport.AspectRatio); camera.Pitch = MathHelper.PiOver4; camera.Yaw = 0; camera.FOV = MathHelper.PiOver4; unitDataFiles = new List <FileInfo>(); schemeFiles = new List <FileInfo>(); FindAllData(); curUnit = 0; }
private void WorkThread() { try { // Start With Default Values isLoaded = false; loadException = null; LoadedRenderer = null; // Grab The Initialization Info loadData = game.LobbyScreen.InitInfo; // Build The Local Game State LoadedState = new GameState(); if (LoadFile == null) { GameEngine.BuildLocal(LoadedState, LoadData, new DirectoryInfo(@"Packs"), game.LobbyScreen.Races); } else { GameEngine.Load(LoadedState, new DirectoryInfo(@"Packs"), LoadFile.FullName); } // Create The Input Controllers for (int ti = 0; ti < LoadedState.teams.Length; ti++) { if (string.IsNullOrWhiteSpace(LoadData.Teams[ti].InputController)) { continue; } GameEngine.SetInput(LoadedState, ti, LoadedState.Scripts[LoadData.Teams[ti].InputController].CreateInstance <ACInputController>()); } // Create Camera LoadedCamera = new Camera(G.Viewport); LoadedCamera.Controller.Hook(game.Window); // Load The Renderer RendererInitArgs ria = ZXParser.ParseFile(@"Content\FX\RIA.txt", typeof(RendererInitArgs)) as RendererInitArgs; LoadedRenderer = new RTSRenderer(game.Graphics, game.Content, ria, game.Window); LoadedRenderer.HookToGame(LoadedState, 0, LoadedCamera); // Initialize Inputs int teami = -1; foreach (var t in LoadedState.teams) { teami++; if (t == null) { continue; } // Set Camera var vInput = t.Input as IVisualInputController; if (vInput != null) { vInput.Camera = LoadedCamera; } // Init t.Input.Init(LoadedState, t.Index, loadData.Teams[teami].InputInitArgs); // Build if (vInput != null) { vInput.Build(LoadedRenderer); } } // Create Gameplay LoadedGPlay = new GameplayController(); GCInitArgs gca = new GCInitArgs() { GameTypeScript = LoadData.GTController }; LoadedGPlay.Init(LoadedState, gca); } catch (Exception e) { if (LoadedRenderer != null) { LoadedRenderer.Dispose(); } loadException = e; } isLoaded = true; }