void TriangulateConnection(Cell cell, Direction direction) { Cell neighbor = cell.GetNeighbor(direction); if (neighbor != null) { if (cell.hasEdgeInDirection(direction)) { Vector3 center = cell.transform.localPosition; Vector3 v1 = center + CellMetrics.GetFirstSolidCorner(direction); Vector3 v4 = center + CellMetrics.GetSecondSolidCorner(direction); Vector3 v2 = v1; Vector3 v3 = v4; v2.y = v3.y = cell.GetNeighbor(direction).Elevation *CellMetrics.elevationStep; terrain.AddQuad(v1, v2, v3, v4); if (cell.isUnderWater) { water.AddQuad(v1, v2, v3, v4); } if (cell.Elevation > neighbor.Elevation) { terrain.AddQuadColor(cell.Color); } else { terrain.AddQuadColor(neighbor.Color); } } } else if (cell.IsEdge) { Vector3 center = cell.transform.localPosition; Vector3 v1 = center + CellMetrics.GetFirstSolidCorner(direction); Vector3 v4 = center + CellMetrics.GetSecondSolidCorner(direction); Vector3 v2 = v1; Vector3 v3 = v4; v2.y = v3.y = -1 * CellMetrics.elevationStep; terrain.AddQuad(v1, v2, v3, v4); if (cell.isUnderWater) { water.AddQuad(v1, v2, v3, v4); } terrain.AddQuadColor(cell.Color); } }
void Method(CellMetrics metrics) { StaticMethod(metrics); }
internal static void StaticMethod(CellMetrics metrics) { }