Exemplo n.º 1
0
    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;
        }
    }