public Level(List <LvlVert> verts, List <LvlEdge> edges, LvlVert startVert, List <LvlVert> endVerts) { this.verts = verts; this.edges = edges; this.startVert = startVert; this.endVerts = endVerts; }
private LvlEdge readEdge(String edge) { string[] edgeVerts = edge.Split(' '); LvlVert vert1 = rawVertexes[int.Parse(edgeVerts[1]) - 1]; LvlVert vert2 = rawVertexes[int.Parse(edgeVerts[2]) - 1]; return(new LvlEdge(vert1, vert2)); }
public void Setup(List <LvlVert> verts, List <LvlEdge> edges, LvlVert startVert, List <LvlVert> endVerts, String mesh) { this.verts = verts; this.edges = edges; this.startVert = startVert; this.endVerts = endVerts; this.meshPath = mesh; isSetup = true; GD.Print("Level Setup Complete!"); }
public void SetLerpPos(LvlVert vert) { GD.Print(GetTranslation() + " Something"); elapsedTime = 0; targetPos = vert.Vertex; traveling = true; currentVert = vert; GuiScript gui = GetNode <GuiScript>("/root/GameNode/ObjLevelLoader/InGameGui"); gui.UpdateMove(); startingPos = GetTranslation(); }
public void ResetLevel() { foreach (Node child in this.GetChildren()) { RemoveChild(child); child.CallDeferred("free"); } this.verts = new List <LvlVert>(); this.edges = new List <LvlEdge>(); this.startVert = null; this.endVerts = new List <LvlVert>(); this.isSetup = false; GD.Print("Level has been reset!"); }
public void movePlayerTo(string id) { LvlVert vert = verts[0]; foreach (LvlVert v in verts) { if (v.Id.ToString().Equals(id)) { vert = v; break; } } disableVertHighlights(); player.SetLerpPos(vert); }
public LvlEdge(LvlVert vert1, LvlVert vert2) { id = Guid.NewGuid(); this.vert1 = vert1; this.vert2 = vert2; }
public void LoadLevel(String levelObjPath) { rawVertexes = new List <LvlVert>(); compressedVertexes = new List <LvlVert>(); edges = new List <LvlEdge>(); startVert = null; endVerts = new List <LvlVert>(); String[] objText = System.IO.File.ReadAllLines(levelObjPath); String startFace = ""; String endFace1 = ""; String endFace2 = ""; String endFace3 = ""; String endFace4 = ""; for (int i = 0; i < objText.Length; i++) { //Print everything except comments /* * if (!line.BeginsWith("#")) { * GD.Print(line); * } */ if (objText[i].BeginsWith("v")) { rawVertexes.Add(readVertex(objText[i])); } if (objText[i].BeginsWith("l")) { edges.Add(readEdge(objText[i])); } //Find the start point if (objText[i].BeginsWith("g Start")) { startFace = objText[i + 1]; } //Find the start point if (objText[i].BeginsWith("g End1")) { endFace1 = objText[i + 1]; } //Find the start point if (objText[i].BeginsWith("g End2")) { endFace2 = objText[i + 1]; } //Find the start point if (objText[i].BeginsWith("g End3")) { endFace3 = objText[i + 1]; } //Find the start point if (objText[i].BeginsWith("g End4")) { endFace4 = objText[i + 1]; } } //Calculate the start vert startVert = getVertByFaceNum(startFace); endVerts = new List <LvlVert>(); if (!string.IsNullOrEmpty(endFace1)) { endVerts.Add(getVertByFaceNum(endFace1)); } if (!string.IsNullOrEmpty(endFace2)) { endVerts.Add(getVertByFaceNum(endFace2)); } if (!string.IsNullOrEmpty(endFace3)) { endVerts.Add(getVertByFaceNum(endFace3)); } if (!string.IsNullOrEmpty(endFace4)) { endVerts.Add(getVertByFaceNum(endFace4)); } if (debugPrint) { GD.Print("Start vert = " + startVert.Id.ToString()); GD.Print("End verts = "); foreach (var vert in endVerts) { GD.Print(vert.Id.ToString()); } GD.Print("End verts = "); foreach (var vert in endVerts) { GD.Print(vert.Id.ToString()); } } compressVerts(); if (debugPrint) { GD.Print("Compressed verts count = " + compressedVertexes.Count); GD.Print("Verts:"); foreach (var vert in compressedVertexes) { GD.Print(vert.Id.ToString() + " - " + vert.Vertex.ToString()); } //compressEdges(); GD.Print("Edge count = " + edges.Count); GD.Print("Edges:"); foreach (var edge in edges) { GD.Print(edge.Vert1.Id.ToString() + " - " + edge.Vert2.Id.ToString()); } } //level = new Level(compressedVertexes, edges, startVert, endVerts); String mesh = levelObjPath.Replace("Edges", ""); LevelLoader levelLoader = (LevelLoader)GetNode("LevelLoader"); levelLoader.ResetLevel(); if (!levelLoader.IsSetup) { levelLoader.Setup(compressedVertexes, edges, startVert, endVerts, mesh); } }