public static List <ushort> GenerateTileMap(TileMapType tileMapType) { List <ushort> tilemap = new List <ushort>(); List <Color[]> allTilesColors = GetAllTileColors(tileMapType.Tiles); List <Color[]> unicas = GetUniqueTilesAndColors(allTilesColors, tileMapType); foreach (var tile in allTilesColors) { int contador = 0; foreach (var tileEscolhida in unicas) { if (CompareTilesColors(tile, tileEscolhida)) { break; } contador++; } tilemap.Add((ushort)contador); } // tiles = unicas; return(tilemap); }
private static List <Color[]> GetUniqueTilesAndColors(List <Color[]> AllTileColors, TileMapType tileMapType) { List <Color[]> tilesColors = new List <Color[]>(); List <Bitmap> unique = new List <Bitmap>(); int counter = 0; foreach (var item in AllTileColors) { bool existe = false; foreach (var tl in tilesColors) { if (CompareTilesColors(item, tl)) { existe = true; break; } } if (!existe) { tilesColors.Add(item); unique.Add(tileMapType.Tiles[counter]); } counter++; } tileMapType.Tiles = unique; return(tilesColors); }