Azmyth.Mono.Game1.Draw C# (CSharp) Method

Draw() protected method

This is called when the game should draw itself.
protected Draw ( GameTime gameTime ) : void
gameTime Microsoft.Xna.Framework.GameTime Provides a snapshot of timing values.
return void
        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);

            if (m_planeManager != null)
            {

                System.Drawing.RectangleF viewportRect = ScreenToTile(new Rectangle(GraphicsDevice.Viewport.X, GraphicsDevice.Viewport.Y, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height));

                m_spriteBatch.Begin(SpriteSortMode.Texture, null, null, null, null, null, Matrix.CreateTranslation(0, 0, 0));

                if (m_tileSize <= 1)
                {
                    Texture2D circle = CreateCircle(250);

                    // Change Color.Red to the colour you want
                    m_spriteBatch.Draw(circle, new Vector2((-250 + (int)m_offsetX), (-250 + (int)m_offsetY)), Color.Red);
                }
                else
                {
                    for (Planes p = Planes.Prime; p <= Planes.Fire; p++)
                    {
                        Plane plane = m_planeManager[p];

                        if (plane != null)
                        {
                            if (plane.IsVisible)
                            {
                                List<TerrainTile> tiles = plane.chunk.GetTiles(viewportRect);

                                foreach (TerrainTile t in tiles)
                                {
                                    switch (t.Terrain)
                                    {
                                        case TerrainTypes.Ocean:
                                            switch (plane.m_plane)
                                            {
                                                case Planes.Prime:
                                                    m_spriteBatch.Draw(m_ocean, TileToScreen(t.Bounds), Color.White);
                                                    break;
                                                case Planes.Air:
                                                    m_spriteBatch.Draw(m_air, TileToScreen(t.Bounds), Color.White);
                                                    break;
                                                case Planes.Earth:
                                                    m_spriteBatch.Draw(m_dirt, TileToScreen(t.Bounds), Color.White);
                                                    break;
                                                case Planes.Water:
                                                    m_spriteBatch.Draw(m_ocean, TileToScreen(t.Bounds), Color.White);
                                                    break;
                                                case Planes.Fire:
                                                    m_spriteBatch.Draw(m_fire, TileToScreen(t.Bounds), Color.White);
                                                    break;

                                            }
                                            break;
                                        default:
                                            m_spriteBatch.Draw(m_dirt, TileToScreen(t.Bounds), Color.White);
                                            break;
                                    }

                                }
                            }
                        }
                    }
                }

                //foreach (TerrainChunk chunk in chunks)
                //{

                    /*tiles = water.GetTiles(viewportRect);

                    foreach (TerrainTile t in tiles)
                    {
                   //     switch (t.Terrain)
                   //     {
                            //case TerrainTypes.Ocean:
                                m_spriteBatch.Draw(m_ocean, TileToScreen(t.Bounds), Color.White);
                             //   break;
                            //default:
                             //   m_spriteBatch.Draw(m_dirt, TileToScreen(t.Bounds), Color.White);
                             //   break;
                     //   }
                    }

                    tiles = earth.GetTiles(viewportRect);

                    foreach (TerrainTile t in tiles)
                    {
                             switch (t.Terrain)
                           {
                        case TerrainTypes.Ocean:
                             //m_spriteBatch.Draw(m_dirt, TileToScreen(t.Bounds), Color.White);
                           break;
                        default:
                           m_spriteBatch.Draw(m_dirt, TileToScreen(t.Bounds), Color.White);
                           break;
                           }

                    }

                    tiles = air.GetTiles(viewportRect);

                    foreach (TerrainTile t in tiles)
                    {
                             switch (t.Terrain)
                             {
                        case TerrainTypes.Ocean:
                            m_spriteBatch.Draw(m_dirt, TileToScreen(t.Bounds), Color.White);
                           break;
                        default:
                           m_spriteBatch.Draw(m_air, TileToScreen(t.Bounds), Color.White);
                           break;
                           }

                    }

                    tiles = fire.GetTiles(viewportRect);

                    foreach (TerrainTile t in tiles)
                    {
                        switch (t.Terrain)
                             {
                                case TerrainTypes.Ocean:
                                m_spriteBatch.Draw(m_dirt, TileToScreen(t.Bounds), Color.White);
                                break;
                                default:
                                m_spriteBatch.Draw(m_fire, TileToScreen(t.Bounds), Color.White);
                                break;
                             }
                    }

                    tiles = plane5.GetTiles(viewportRect);

                    foreach (TerrainTile t in tiles)
                    {
                        m_spriteBatch.Draw(m_ocean, TileToScreen(t.Bounds), Color.White);
                    }

                    tiles = plane6.GetTiles(viewportRect);

                    foreach (TerrainTile t in tiles)
                    {
                        m_spriteBatch.Draw(m_air, TileToScreen(t.Bounds), Color.White);
                    }

                    tiles = plane7.GetTiles(viewportRect);

                    foreach (TerrainTile t in tiles)
                    {
                        m_spriteBatch.Draw(m_fire, TileToScreen(t.Bounds), Color.White);
                    }

                    tiles = plane8.GetTiles(viewportRect);

                    foreach (TerrainTile t in tiles)
                    {
                        m_spriteBatch.Draw(m_dirt, TileToScreen(t.Bounds), Color.White);
                    }*/

            #if DEBUG
                        //Rectangle rect = TileToScreen(chunk.Bounds);
                        //string chunkString = "Chunk: (" + (chunk.Bounds.X / m_chunkSize) + "," + (chunk.Bounds.Y / m_chunkSize) + ")";

                       // DrawBorder(rect, 1, Color.Red);

                       // m_spriteBatch.DrawString(m_spriteFont, chunkString, new Vector2(rect.X + 5, rect.Y), Color.Red);
            #endif
               // }

                m_spriteBatch.End();
            }
            base.Draw(gameTime);
        }