public bool ExpandEach(SortedNodeList listaNodosAExplorar, Dictionary <Vector2, PathfindingNode> diccionarioNodos, Vector2 posicionAExplorar) { nodoExtraido = null; // Primero nos aseguramos de que estemos en una posicion dentro del mapa if (Scenario.scenarioRef.isWalkable(posicionAExplorar) && distance < 40) { diccionarioNodos.TryGetValue(posicionAExplorar, out nodoExtraido); // Si es la primera vez que alcanzamos ese nodo... if (nodoExtraido == null) { // Y no es el objetivo la anyadimos a la lista para explorar if (posicionAExplorar != targetPosition) { nodoCreado = new PathfindingNode(posicionAExplorar, (short)(distance + 1), this); nodoCreado.actualizarPesos(); listaNodosAExplorar.Add(nodoCreado); } // Si la posicion es la objetivo la encabezamos en la lista y detenemos la busqueda else { nodoCreado = new PathfindingNode(posicionAExplorar, (short)(distance + 1), this); listaNodosAExplorar.AddResultAtFirst(nodoCreado); return(true); } } // Si hemos llegado a un caso mejor... reordenamos los punteros else if (distance + 1 < nodoExtraido.distance) { nodoExtraido.distance = (short)(distance + 1); nodoExtraido.parent = this; nodoExtraido.actualizarPesos(); } } return(false); }