/// <summary>
 /// Draw the GameObject at its isometric location
 /// </summary>
 public void DrawIsometric(GameTime gameTime, SpriteBatchIsometric spriteBatch)
 {
     spriteBatch.DrawIsometric(
         _texture,
         _parent.Displacement,
         _drawColor);
 }
        /// <summary>
        /// Draw this layer
        /// </summary>
        public override void Draw(GameTime gameTime, SpriteBatchIsometric spriteBatch)
        {
            // ---------- Begin drawing from this layer's perspective ----------
            spriteBatch.Begin(
                SpriteSortMode.Deferred,
                BlendState.AlphaBlend,
                null,
                null,
                null,
                null,
                _camTransformation);

            // ---------- Draw TileSystem ----------
            _tileSystem.Draw(gameTime, spriteBatch);

            // ---------- Draw GameObjects ----------
            foreach (GameObject go in _gameObjects)
            {
                GOCDrawable drawableComponent = go.GetComponent<GOCDrawable>();
                if (drawableComponent != null)
                    drawableComponent.Draw(gameTime, spriteBatch);
            }

            // ---------- Drawing complete ----------
            spriteBatch.End();
        }
        /// <summary>
        /// Draw all data on this GameLayer
        /// </summary>
        public virtual void Draw(GameTime gameTime, SpriteBatchIsometric spriteBatch)
        {
            // Begin drawing from this GameLayer's perspective
            spriteBatch.Begin(
                SpriteSortMode.Deferred,
                BlendState.AlphaBlend,
                null,
                null,
                null,
                null,
                _camTransformation);

            // ---------- Start drawing GameObjects ----------

            foreach (GameObject go in _gameObjects)
            {
                GOCDrawable drawableComponent = go.GetComponent<GOCDrawable>();
                if (drawableComponent != null)
                    drawableComponent.Draw(gameTime, spriteBatch);
            }

            // ---------- End drawing GameObjects ----------

            // End drawing
            spriteBatch.End();
        }
        /// <summary>
        /// Draw the GameObject at its cartesian location
        /// </summary>
        public void Draw(GameTime gameTime, SpriteBatchIsometric spriteBatch)
        {
            Vector2 position;
            position.X = _parent.Displacement.X;
            position.Y = _parent.Displacement.Z;

            spriteBatch.Draw(
                _texture,
                position,
                _drawColor);
        }
        /// <summary>
        /// Draw everything contained in the GameScreen
        /// </summary>
        public override void Draw(GameTime gameTime, SpriteBatchIsometric spriteBatch)
        {
            // ---------- Draw GameLevel ----------
            _gameLevel.Draw(gameTime, spriteBatch);

            // ---------- Draw GameInterface ----------
            _gameInterface.Draw(gameTime, spriteBatch);

            // ---------- Draw Base ----------
            base.Draw(gameTime, spriteBatch);
        }
 /// <summary>
 /// Draw this GameLevel
 /// </summary>
 public void Draw(GameTime gameTime, SpriteBatchIsometric spriteBatch)
 {
     // Draw the main layer
     _mainLayer.Draw(gameTime, spriteBatch);
 }
        public void Draw(GameTime gameTime, SpriteBatchIsometric spriteBatch)
        {
            // ---------- Draw all tiles ----------
            for (int i = 0; i < _numRows; i++)
                for (int j = 0; j < _numCols; j++)
                {
                    TileRef currTile = _tiles[i, j];

                    Vector3 tilePosition;
                    tilePosition.X = i * TILE_SIZE;
                    tilePosition.Y = currTile.Elevation * TILE_SIZE;
                    tilePosition.Z = j * TILE_SIZE;

                    spriteBatch.DrawIsometric(
                        TileTypes[currTile.ReferenceID].Texture,
                        tilePosition,
                        Color.White);
                }

            // ---------- Draw selection indicators ----------
            if (_selectedIndices.Count != 0)
            {
                foreach (Vector2 index in _selectedIndices)
                {
                    int x = (int)index.X;
                    int y = (int)index.Y;
                    TileRef currTile = _tiles[x, y];

                    Vector3 drawPosition;
                    drawPosition.X = x * TILE_SIZE;
                    drawPosition.Y = currTile.Elevation * TILE_SIZE;
                    drawPosition.Z = y * TILE_SIZE;

                    spriteBatch.DrawIsometric(
                        _selectionTextureDraw,
                        drawPosition,
                        _selectionColorDraw);
                }
            }
            else
            {
                if (VerifyIndexWithinRange(_currentMouseTileIndex))
                {
                    TileRef mouseTile = _tiles[(int)_currentMouseTileIndex.X, (int)_currentMouseTileIndex.Y];
                    Vector3 drawPosition;
                    drawPosition.X = _currentMouseTileIndex.X * TILE_SIZE;
                    drawPosition.Y = mouseTile.Elevation * TILE_SIZE;
                    drawPosition.Z = _currentMouseTileIndex.Y * TILE_SIZE;

                    spriteBatch.DrawIsometric(
                        _selectionTextureDraw,
                        drawPosition,
                        _selectionColorDraw);
                }
            }
        }
 /// <summary>
 /// Draw everything on this screen
 /// </summary>
 public virtual void Draw(GameTime gameTime, SpriteBatchIsometric spriteBatch)
 {
     // TODO: Add general screen draw code here
 }
        /// <summary>
        /// Load specified content
        /// </summary>
        protected override void LoadContent()
        {
            _spriteBatch = new SpriteBatchIsometric(GraphicsDevice);

            TestingContent();
        }