public IEnumerable<IMapSquare> EnumerateSquares() { if(Type == MapType.Map2D) { foreach(Tile t in TileData)yield return t; }else if(Type == MapType.Map3D) { foreach(Block b in BlockData)yield return b; } }