private void load(string file) { byte[] buffer = new byte[4]; using (FileStream f = new FileStream(file, FileMode.Open, FileAccess.Read)) { f.Read(buffer, 0, 4); Nodes=new Node[BitConverter.ToInt32(buffer, 0)]; for (int i = 0; i < Nodes.Length; i++) { Nodes[i]=new Node(f, buffer, this); Nodes[i].passable = Nodes[i].position.Distance(gate1) > 200 && Nodes[i].position.Distance(gate2) > 200; } } }
private void load() { byte[] buffer = new byte[4]; using (MemoryStream f = new MemoryStream(Resources.NavGraphSummonersRift)) { f.Read(buffer, 0, 4); Nodes = new Node[BitConverter.ToInt32(buffer, 0)]; for (int i = 0; i < Nodes.Length; i++) { Nodes[i] = new Node(f, buffer, this); Nodes[i].passable = Nodes[i].position.Distance(gate1) > 200 && Nodes[i].position.Distance(gate2) > 200; } } }
public void RemoveNode(int node) { while (Nodes[node].Neighbors.Length > 0) { RemoveLink(node, Nodes[node].Neighbors[0]); } Node[] tmp = new Node[Nodes.Length - 1]; Array.Copy(Nodes, 0, tmp, 0, node); Array.Copy(Nodes, node + 1, tmp, node, Nodes.Length - node - 1); Nodes = tmp; for (int i = 0; i < Nodes.Length; i++) { for (int j = 0; j < Nodes[i].Neighbors.Length; j++) { if (Nodes[i].Neighbors[j] > node) Nodes[i].Neighbors[j]--; } } }
public void AddNode(Vector3 pos) { Node[] tmp = new Node[Nodes.Length + 1]; Nodes.CopyTo(tmp, 0); Nodes = tmp; Nodes[Nodes.Length - 1] = new Node(new int[0], pos, this); }