/// This is called when the game should draw itself. /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Draw(GameTime gameTime) { renderer.clearScreen(this); renderer.startDrawing(); //Draw console if (currentMap.getOccupied(inputManager.GetCurrentMouseTile(currentMap))) { uiManager.updateConsole(currentMap.getOccupyingElement(inputManager.GetCurrentMouseTile(currentMap)).getDetails()); } else { uiManager.updateConsole(""); } //Draw Console uiManager.DrawConsole(); if (elementFocus.Count > 0) { uiManager.DrawCurrentFocusActionIcons(elementFocus[0], inputManager); } //Draw map //find water offset waterOffset.X += gameTime.ElapsedGameTime.Milliseconds * 0.01f; waterOffset.Y += gameTime.ElapsedGameTime.Milliseconds * 0.02f; //if (waterOffset.X > 256.0f) waterOffset.X -= 256.0f - (float)GlobalVariables.TILE_SIZE; //if (waterOffset.Y > 256.0f) waterOffset.Y -= 256.0f - (float)GlobalVariables.TILE_SIZE; currentMap.drawWater(renderer, waterOffset); currentMap.draw(renderer); currentMap.drawWaterLedge(renderer); //Drag drawing if (inputManager.DragStarted()) { uiManager.DrawCurrentDrag(inputManager.GetMouseDragStartTile(), inputManager.GetCurrentMouseTile(currentMap)); } else { //Heighlight mouse position if (inputManager.MouseOverMap()) { uiManager.DrawMouseFocus(inputManager.GetCurrentMouseTile(currentMap)); } } //Heighlight focus if (elementFocus.Count > 0) { for (int i = 0; i < elementFocus.Count; i++) { uiManager.DrawCurrentObjectFocus(elementFocus[i]); } } renderer.endDrawing(); base.Draw(gameTime); }