public DefinitionNode AddNode(Vector2 position, float movementPenalty = 1f) { var definitionNode = new DefinitionNode(DefinitionNodes.Count, position, movementPenalty); DefinitionNodes.Add(definitionNode); return(definitionNode); }
/// <summary> /// Returns the node closest to this position /// </summary> /// <returns></returns> public DefinitionNode GetNode(float worldX, float worldY) { return(DefinitionNodes.OrderBy(x => MathF.Distance(x.Position.X, x.Position.Y, worldX, worldY)).FirstOrDefault()); //TODO this does not scale well with more nodes in the network. }