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); } } }