AdjacentTiles GetAdjacentTiles(int px, int py) { AdjacentTiles azul_vizinhos = new AdjacentTiles(); var px_esq = px - 1; var px_dir = px + 1; var py_cima = py - 1; var py_baixo = py + 1; var px_primeiro = px == 0; var px_ultimo = px == (width - 1); var py_primeiro = py == 0; var py_ultimo = py == (height - 1); azul_vizinhos.middle_up = py_primeiro ? false : map[py_cima].line[px]; azul_vizinhos.right_up = px_ultimo || py_primeiro ? false : map[py_cima].line[px_dir]; azul_vizinhos.right_middle = px_ultimo ? false : map[py].line[px_dir]; azul_vizinhos.right_bottom = px_ultimo || py_ultimo ? false : map[py_baixo].line[px_dir]; azul_vizinhos.middle_bottom = py_ultimo ? false : map[py_baixo].line[px]; azul_vizinhos.left_middle = px_primeiro ? false : map[py].line[px_esq]; azul_vizinhos.left_up = px_primeiro || py_primeiro ? false : map[py_cima].line[px_esq]; return(azul_vizinhos); }
string GetSimplifiedTileId(AdjacentTiles adjacent_tiles) { string[] digits = new string[4]; digits[0] = adjacent_tiles.middle_up ? "1" : "0"; digits[1] = adjacent_tiles.right_middle ? "1" : "0"; digits[2] = adjacent_tiles.middle_bottom ? "1" : "0"; digits[3] = adjacent_tiles.left_middle ? "1" : "0"; return(string.Concat( digits[0], digits[1], digits[2], digits[3] )); }
public GameObject GetSuitableGbj(AdjacentTiles adjacent_tiles) { var complete_id = GetTileID(adjacent_tiles); var id_index = GetTileIdIndex(complete_id); if (id_index == -1) { complete_id = GetSimplifiedTileId(adjacent_tiles); id_index = GetTileIdIndex(complete_id); if (id_index == -1) { id_index = 0; } } return(tileGameObjects[id_index]); }
string GetTileID(AdjacentTiles adjacent_tiles) { string[] digits = new string[8]; digits[0] = adjacent_tiles.middle_up ? "1" : "0"; digits[1] = adjacent_tiles.right_up ? "1" : "0"; digits[2] = adjacent_tiles.right_middle ? "1" : "0"; digits[3] = adjacent_tiles.right_bottom ? "1" : "0"; digits[4] = adjacent_tiles.middle_bottom ? "1" : "0"; digits[5] = adjacent_tiles.left_bottom ? "1" : "0"; digits[6] = adjacent_tiles.left_middle ? "1" : "0"; digits[7] = adjacent_tiles.left_up ? "1" : "0"; return(string.Concat( digits[0], digits[1], digits[2], digits[3], digits[4], digits[5], digits[6], digits[7] )); }