public void RenderSprite(ISprite sprite, ITileset tileset, IPalette palette, Point renderAt)
 {
     for (int y = 0; y < sprite.HeightInTiles; y++)
     {
         for (int x = 0; x < sprite.WidthInTiles; x++)
         {
             var properties = new TileProperties(sprite.GetTileIndexAt(x, y), sprite.PaletteIndex, sprite.FlipX, sprite.FlipY);
             RenderTile(tileset[properties.TileIndex], palette, properties, renderAt, sprite.X + x * 8, sprite.Y + y * 8);
         }
     }
 }