using TanksServer.GameLogic; namespace TanksServer.Graphics; internal sealed class DrawPowerUpsStep(MapEntityManager entityManager) : IDrawStep { private readonly Sprite _explosiveSprite = Sprite.FromImageFile("assets/powerup_explosive.png"); public void Draw(GamePixelGrid pixels) { foreach (var powerUp in entityManager.PowerUps) { var position = powerUp.Bounds.TopLeft; for (byte dy = 0; dy < MapService.TileSize; dy++) for (byte dx = 0; dx < MapService.TileSize; dx++) { var pixelState = _explosiveSprite[dx, dy]; if (!pixelState.HasValue) continue; var (x, y) = position.GetPixelRelative(dx, dy); pixels[x, y].EntityType = pixelState.Value ? GamePixelEntityType.PowerUp : null; } } } }