private void UpdateLawn(LevelGrid grid) { Lawn lawn = GetLawnAtPosition(grid); bool[] nearGridColor = new bool[4]; if (grid.state > 0 && !grid.colorOn) { Vector2 uv = GetUVAtPosition(grid, grid.position); for (int i = 1; i <= 4; i++) { LevelGrid tmp = grid.GetNearGrid((NearGridDirection)i); if (tmp != null && tmp.state > 0 && grid.groundColor == tmp.groundColor) { nearGridColor[i - 1] = true; } else { nearGridColor[i - 1] = false; } } lawn.DrawGridAtPosition(uv, grid.groundColor, grid.state, nearGridColor[0], nearGridColor[1], nearGridColor[2], nearGridColor[3]); grid.colorOn = true; } else if (grid.state == 0 && grid.colorOn) { Vector2 uv = GetUVAtPosition(grid, grid.position); lawn.ClearAtPosition(uv); grid.colorOn = false; } }