private void ApplyDistanceField(DistanceElement[,] distance, Map map, TerrainDef rockDef, RoadDef roadDef, RoadPathingDef pathingDef) { for (int i = 0; i < map.Size.x; i++) { for (int j = 0; j < map.Size.z; j++) { DistanceElement distanceElement = distance[i, j]; if (!distanceElement.touched) { continue; } float b = Mathf.Abs(distanceElement.fromRoad + Rand.Value - 0.5f); for (int k = 0; k < roadDef.roadGenSteps.Count; k++) { RoadDefGenStep roadDefGenStep = roadDef.roadGenSteps[k]; float x = Mathf.LerpUnclamped(distanceElement.fromRoad, b, roadDefGenStep.antialiasingMultiplier); float num = roadDefGenStep.chancePerPositionCurve.Evaluate(x); if (!(num <= 0f) && (roadDefGenStep.periodicSpacing == 0 || !(distanceElement.alongPath / (float)roadDefGenStep.periodicSpacing % 1f * (float)roadDefGenStep.periodicSpacing >= 1f))) { IntVec3 position = new IntVec3(i, 0, j); if (Rand.Value < num) { roadDefGenStep.Place(map, position, rockDef, distanceElement.origin, distance); } } } } } }
private void ApplyDistanceField(DistanceElement[,] distance, Map map, TerrainDef rockDef, RoadDef roadDef, RoadPathingDef pathingDef) { int num = 0; while (true) { int num2 = num; IntVec3 size = map.Size; if (num2 < size.x) { int num3 = 0; while (true) { int num4 = num3; IntVec3 size2 = map.Size; if (num4 < size2.z) { DistanceElement distanceElement = distance[num, num3]; if (distanceElement.touched) { float b = Mathf.Abs((float)(distanceElement.fromRoad + Rand.Value - 0.5)); for (int i = 0; i < roadDef.roadGenSteps.Count; i++) { RoadDefGenStep roadDefGenStep = roadDef.roadGenSteps[i]; float x = Mathf.LerpUnclamped(distanceElement.fromRoad, b, roadDefGenStep.antialiasingMultiplier); float num5 = roadDefGenStep.chancePerPositionCurve.Evaluate(x); if (!(num5 <= 0.0) && (roadDefGenStep.periodicSpacing == 0 || !(distanceElement.alongPath / (float)roadDefGenStep.periodicSpacing % 1.0 * (float)roadDefGenStep.periodicSpacing >= 1.0))) { IntVec3 position = new IntVec3(num, 0, num3); if (Rand.Value < num5) { roadDefGenStep.Place(map, position, rockDef); } } } } num3++; continue; } break; } num++; continue; } break; } }