public FlatRedBall.AI.Pathfinding.PositionedNode ToPositionedNode() { FlatRedBall.AI.Pathfinding.PositionedNode positionedNode = new FlatRedBall.AI.Pathfinding.PositionedNode(); positionedNode.Name = Name; positionedNode.Position.X = X; positionedNode.Position.Y = Y; positionedNode.Position.Z = Z; // links will be established by the NodeNetworkSave.ToNodeNetwork method // We've done all we can do here. return(positionedNode); }
public FlatRedBall.AI.Pathfinding.PositionedNode ToPositionedNode() { FlatRedBall.AI.Pathfinding.PositionedNode positionedNode = new FlatRedBall.AI.Pathfinding.PositionedNode(); positionedNode.Name = Name; positionedNode.Position.X = X; positionedNode.Position.Y = Y; positionedNode.Position.Z = Z; // links will be established by the NodeNetworkSave.ToNodeNetwork method // We've done all we can do here. return positionedNode; }
public static PositionedNodeSave FromPositionedNode(FlatRedBall.AI.Pathfinding.PositionedNode positionedNode) { PositionedNodeSave nodeSave = new PositionedNodeSave(); nodeSave.Name = positionedNode.Name; nodeSave.X = positionedNode.Position.X; nodeSave.Y = positionedNode.Position.Y; nodeSave.Z = positionedNode.Position.Z; foreach (FlatRedBall.AI.Pathfinding.Link link in positionedNode.Links) { nodeSave.Links.Add( LinkSave.FromLink(link)); } return(nodeSave); }
public FlatRedBall.AI.Pathfinding.NodeNetwork ToNodeNetwork(out string errors) { errors = null; FlatRedBall.AI.Pathfinding.NodeNetwork nodeNetwork = new FlatRedBall.AI.Pathfinding.NodeNetwork(); foreach (PositionedNodeSave nodeSave in PositionedNodes) { PositionedNode node = nodeSave.ToPositionedNode(); nodeNetwork.AddNode(node); } List <PositionedNode> nodesAlreadyLinked = new List <PositionedNode>(PositionedNodes.Count); // Now that all of the nodes are set up, reestablish the links for (int i = 0; i < PositionedNodes.Count; i++) { foreach (LinkSave linkSave in PositionedNodes[i].Links) { if (linkSave.NodeLinkingTo == PositionedNodes[i].Name) { string nodeName = PositionedNodes[i].Name; if (string.IsNullOrEmpty(nodeName)) { nodeName = "<UNNAMED>"; } errors += "The node " + nodeName + " has a link to itself.\n"; break; } else { PositionedNode node = nodeNetwork.FindByName(linkSave.NodeLinkingTo); if (nodesAlreadyLinked.Contains(node) == false) { nodeNetwork.Nodes[i].LinkTo(node, linkSave.Cost); } } } nodesAlreadyLinked.Add(nodeNetwork.Nodes[i]); } return(nodeNetwork); }