//verifica se o bloco esta em uma posição válida na grid bool isValidGridPos() { foreach (Transform child in transform) { Vector2 v = Playerfield.roundVec2(child.position); // se não estiver dentro da área do jogo interrompe a função if (!Playerfield.insideBorder(v)) { return(false); } // verifica se a peça não faz parte do mesmo grupo if (Playerfield.grid[(int)v.x, (int)v.y] != null && Playerfield.grid[(int)v.x, (int)v.y].parent != transform) { return(false); } } return(true); }
void updateGrid() { // Remove os filhos antigos da grid for (int y = 0; y < Playerfield.h; ++y) { for (int x = 0; x < Playerfield.w; ++x) { if (Playerfield.grid[x, y] != null) { if (Playerfield.grid[x, y].parent == transform) { Playerfield.grid[x, y] = null; } } } } // adiciona novos filhos a grid foreach (Transform child in transform) { Vector2 v = Playerfield.roundVec2(child.position); Playerfield.grid[(int)v.x, (int)v.y] = child; } }