public void AddDrawable(DrawData drawable)
 {
     if (drawable == null || _toDraw.Contains(drawable))
     {
         Console.WriteLine("Unable to add drawable!");
         return;
     }
     _toDraw.Add(drawable);
 }
 /// <summary>
 /// Uses spritebatch to draw the provided element.
 /// Note: Assumes spritebatch.Begin() !
 /// </summary>
 /// <param name="toDraw"></param>
 private void drawElement(DrawData toDraw)
 {
     spriteBatch.Draw(
         toDraw.Art, toDraw.Destination,
         toDraw.Source,toDraw.BlendColor);
 }
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            Texture2D blockArt = Content.Load<Texture2D>("Brown Block");
            _spriteSheet = Content.Load<Texture2D>("spritesheet");

            IDrawSprites renderer = (IDrawSprites)
                                    Services.GetService(typeof (IDrawSprites));
            for (int i = 0; i < 20; i++)
            {
                renderer.AddDrawable(new DrawData(
                    blockArt, new Rectangle(
                        blockArt.Bounds.Width * (i%4), //X
                        (i/4)*blockArt.Bounds.Height / 2, //Y
                        blockArt.Bounds.Width,//Width
                        blockArt.Bounds.Height)));//Height
            }
            _sheet = new DrawData(_spriteSheet);
            _sheet.Source = new Rectangle(0,0,24,32);
            _sheet.Destination = new Rectangle(0,0,24*4,32*4);
            renderer.AddDrawable(_sheet);

               AnimationDrawData animated = new AnimationDrawData(
               _spriteSheet, new Rectangle(0,0, 24, 32),
               new Point(100,100),24*4,32*4,3);
            renderer.AddDrawable(animated);
            _controllers.Add(
                new AnimationController(animated, 0.3f));
        }
 public void RemoveDrawable(DrawData toRemove)
 {
     _toDraw.Remove(toRemove);
 }
        protected virtual void drawElement(DrawData drawable)
        {
            Rectangle worldDestination = drawable.Destination;
            worldDestination.X -= _cameraPosition.X;
            worldDestination.Y -= _cameraPosition.Y;

            _drawer.Draw(drawable.Art, worldDestination,
                drawable.Source, Color.White);
        }
 protected virtual void drawElement(DrawData drawable)
 {
     _drawer.Draw(drawable.Art,drawable.Destination,
         drawable.Source, Color.White);
 }