/// <summary> /// Create road helper position /// </summary> /// <param name="setStartNum">Set start number</param> /// <param name="setEndNum">Set end number</param> public RoadHelperPosition(TrackData.RoadHelper.HelperType setType, int setStartNum, int setEndNum) { type = setType; startNum = setStartNum; endNum = setEndNum; }
/// <summary> /// Create road helper position /// </summary> /// <param name="setStartNum">Set start number</param> /// <param name="setEndNum">Set end number</param> public RoadHelperPosition(TrackData.RoadHelper.HelperType setType, int setStartNum, int setEndNum) { type = setType; startNum = setStartNum; endNum = setEndNum; }
private void GenerateTunnelsAndLandscapeObjects( List <TrackData.RoadHelper> roadHelpers, List <TrackData.NeutralObject> neutralObjects, Landscape landscape) { #region Find out where the tunnels are // Go through all tunnel helpers along the road, // everything close enough (<25) is interessting for us. int helperStartedNum = -1; TrackData.RoadHelper.HelperType remType = TrackData.RoadHelper.HelperType.Reset; for (int num = 0; num < points.Count; num++) { Vector3 pos = points[num].pos; foreach (TrackData.RoadHelper roadHelper in roadHelpers) { float dist = Vector3.Distance(roadHelper.pos, pos); if (dist < 25.0f) { if (helperStartedNum >= 0) { helperPositions.Add(new RoadHelperPosition( remType, helperStartedNum, num)); // Reset? if (roadHelper.type == TrackData.RoadHelper.HelperType.Reset) { helperStartedNum = -1; } else { // Start new part helperStartedNum = num; remType = roadHelper.type; } } else { helperStartedNum = num; remType = roadHelper.type; } // Remove this roadHelper (don't use it again)! roadHelpers.Remove(roadHelper); break; } } } // Still a helper open? Then close it close before the end! if (helperStartedNum > 0) { helperPositions.Add(new RoadHelperPosition( remType, helperStartedNum, points.Count - 3)); } #endregion #region Copy over neutral objects for landscape rendering if (landscape != null) { for (int num = 0; num < neutralObjects.Count; num++) { TrackData.NeutralObject obj = neutralObjects[num]; landscape.AddObjectToRender(obj.modelName, obj.matrix, false); } } #endregion }