namespace TanksServer.GameLogic; internal sealed class Map(string name, bool[,] walls) { public string Name => name; public bool IsWall(int x, int y) => walls[x, y]; public bool IsWall(PixelPosition position) => walls[position.X, position.Y]; public bool IsWall(TilePosition position) { var pixel = position.ToPixelPosition(); for (short dx = 0; dx < MapService.TileSize; dx++) for (short dy = 0; dy < MapService.TileSize; dy++) { if (IsWall(pixel.GetPixelRelative(dx, dy))) return true; } return false; } public bool TryDestroyWallAt(PixelPosition pixel) { var result = walls[pixel.X, pixel.Y]; if (result) walls[pixel.X, pixel.Y] = false; return result; } }