private void CacheNextEdgeAndCornerWithOffset(int i, MapElement xMin, MapElement xMax, Vector3 minOffset, Vector3 maxOffset, Vector2Int minPos, Vector2Int maxPos) { bool hasMeshElement = (elementEvaluator.IsMeshElement(xMin) || elementEvaluator.IsMeshElement(xMax)); Vector3 wposMin = new Vector3(minPos.x, 0f, minPos.y); Vector3 wposMax = new Vector3(maxPos.x, 0f, maxPos.y); if (hasMeshElement && !IsEqual(xMin, xMax)) { if (Wall != null) { vertHasWall.Add(vertices.Count, Wall.VertexCount); } rowCacheMax[i + 1] = vertices.Count; vertices.Add(ToEdgePosX(wposMin) + minOffset); if (Wall != null) { Wall.CacheXEdge(WallIndex(i), ToEdgePosX(wposMin) + minOffset); } } if (xMax != null && elementEvaluator.IsMeshElement(xMax)) { rowCacheMax[i + 2] = vertices.Count; vertices.Add(wposMax + maxOffset); } }
private void CacheFirstCorner(MapElement a, Vector2Int pos) { if (a != null && elementEvaluator.IsMeshElement(a)) { if (Wall != null) { vertHasWall.Add(vertices.Count, Wall.VertexCount); } rowCacheMax[0] = vertices.Count; vertices.Add(new Vector3(pos.x, 0f, pos.y)); if (Wall != null) { Wall.CacheXEdge(WallIndex(0), new Vector3(pos.x, 0f, pos.y)); } } }