private Vector3 GetPointFromPlane(SegmentDescription desc, int position) { return(desc.CanyonForm[position].X * desc.PlaneX + desc.CanyonForm[position].Y * desc.PlaneY); }
public bool Generate(SegmentDescription data) { throw new Exception("The method or operation is not implemented."); }
void ICanyon.StreamLoad(int index, Level level) { //if (index == 0) return; // Ersten Block überspringen, da hier noch keine Wand aufgespannt werden kann. List <Vector2> cForm = new List <Vector2>(); foreach (Vec2 tmp in level.Blocks[index].Walls) { cForm.Add(tmp.v); } if (index == 0) { SegmentDescription des = new SegmentDescription(level.Cache[index].X, level.Cache[index].Y, Vector3.Zero, cForm); Segment tmpSegment = new Segment(game); tmpSegment.CanyonValues = des; tmpSegment.GlobalIndex = index; canyonSegments.Add(tmpSegment); } else if (index == 1) { SegmentDescription des = new SegmentDescription(level.Cache[index].X, level.Cache[index].Y, level.Cache[index - 1].ADir, cForm); Segment tmpSegment = new Segment(game); tmpSegment.CanyonValues = des; canyonSegments[canyonSegments.Count - 1].NextCanyonSegement = tmpSegment; tmpSegment.LastCanyonSegment = canyonSegments[canyonSegments.Count - 1]; tmpSegment.GlobalIndex = index; canyonSegments.Add(tmpSegment); canyonSegments[canyonSegments.Count - 1].LoadSegmentPoints(); } else { SegmentDescription des = new SegmentDescription(level.Cache[index].X, level.Cache[index].Y, level.Cache[index - 1].ADir, cForm); Segment tmpSegment = new Segment(game); tmpSegment.CanyonValues = des; canyonSegments[canyonSegments.Count - 1].NextCanyonSegement = tmpSegment; tmpSegment.LastCanyonSegment = canyonSegments[canyonSegments.Count - 1]; tmpSegment.GlobalIndex = index; canyonSegments.Add(tmpSegment); canyonSegments[canyonSegments.Count - 1].LoadSegmentPoints(); canyonSegments[canyonSegments.Count - 2].LoadCanyonModel(); if (index > 5) { canyonSegments[canyonSegments.Count - 5].LoadBoundingBoxes(); } if (index > 7) { canyonSegments[canyonSegments.Count - 7].LoadSkyBox(); } } /* * List<Vector2> cForm = new List<Vector2>(); * foreach (Vec2 tmp in level.Blocks[index-1].Walls) * { * cForm.Add(tmp.v); * } * SegmentDescription des = new SegmentDescription(level.Cache[index-1].X, level.Cache[index-1].Y, level.Cache[index-1].ADir, cForm) ; * Segment tmpSegment = new Segment(game); * tmpSegment.CanyonValues = des; * if (canyonSegments.Count != 0) * { * tmpSegment.LastCanyonSegment = canyonSegments[canyonSegments.Count - 1]; * * } */ //canyonSegments.Add(tmpSegment); /*if (tmpSegment.LastCanyonSegment != null) * { * tmpSegment.LoadSegements(); * } * if (tmpSegment.LastCanyonSegment != null) * { * tmpSegment.LoadCanyon(); * }*/ // ToDo: implementieren // // Alle Benötigten Vars: // - level.Blocks[index].Walls -- enthält die Liste der Wände // - level.Cache[index] -- enthält die "Zwischenebenen" // genauer: (wenn du mehr brauchst, machst du was falsch) ;-) // - level.Blocks[index-1].Walls // - level.Blocks[index].Walls // - level.Cache[index-1].Pos // - level.Cache[index-1].X // - level.Cache[index-1].Y // - level.Cache[index].Pos // - level.Cache[index].X // - level.Cache[index].y //level.Cache[index] // Momentan werden bereits Beispielwerte übergeben. Diese sind denen von oben sehr ähnlich. }