示例#1
0
    public static bool IsShoreTile(int x, int y)
    {
        if (IsOutOfBounds(x, y))
        {
            return(false);
        }

        BiomeInfo biomeInfo = BiomeData.GetBiomeInfo(x, y);

        if (shoreTiles[x, y] != null)
        {
            return((bool)shoreTiles[x, y]);
        }

        if (IsWaterTile(x, y))
        {
            shoreTiles[x, y] = false;
            return(false);
        }

        if (IsWaterTile(x + 1, y) || IsWaterTile(x, y + 1) || IsWaterTile(x - 1, y) || IsWaterTile(x, y - 1))
        {
            shoreTiles[x, y] = true;
            return(true);
        }

        shoreTiles[x, y] = false;
        return(false);
    }
示例#2
0
    public static bool IsWaterTile(int x, int y)
    {
        if (IsOutOfBounds(x, y))
        {
            return(false);
        }

        BiomeInfo biomeInfo = BiomeData.GetBiomeInfo(x, y);

        if (waterTiles[x, y] != null)
        {
            return((bool)waterTiles[x, y]);
        }

        if (biomeInfo.biomeIndex == 0)
        {
            waterTiles[x, y] = true;
            return(true);
        }

        waterTiles[x, y] = false;
        return(false);
    }
示例#3
0
    void AddFace(Vector3[] sideVerts, int x, int y, MeshData meshData)
    {
        int vi = meshData.verts.Count;

        Color[] startCols = { water.startCol, sand.startCol, grass.startCol };
        Color[] endCols   = { water.endCol, sand.endCol, grass.endCol };

        meshData.verts.AddRange(sideVerts);

        BiomeInfo biomeInfo = BiomeData.GetBiomeInfo(x, y);

        Color color = Color.Lerp(startCols[biomeInfo.biomeIndex], endCols[biomeInfo.biomeIndex], biomeInfo.biomeDistance);

        meshData.colors.AddRange(new[] { color, color, color, color });

        meshData.tris.Add(vi);
        meshData.tris.Add(vi + 1);
        meshData.tris.Add(vi + 2);

        meshData.tris.Add(vi + 2);
        meshData.tris.Add(vi + 1);
        meshData.tris.Add(vi + 3);
    }