/// <summary> /// Devuelve true si hay conexi�n entre ambas carreteras /// Lo usan los vehiculos /// No tiene encuenta si realmente est�n adyacentes /// </summary> /// <param name="road1"></param> /// <param name="road2"></param> /// <returns></returns> public static bool CheckConnection(RoadEntity road1, RoadEntity road2) { bool r = true; //Presuponemos "true" //en el "out" de CheckAdjacencyWith se devuelve una dirección //que apunta hacia donde está el otro RoadID. //Además devuelve True si es adyacente o false si no lo es //Si no están Adyacentes hacemos return false; CardinalPoint from1to2; if (!road1.position.CheckAdjacencyWith(road2.position, out from1to2)) { return(false); } //Igual en la otra dirección CardinalPoint from2to1; if (!road2.position.CheckAdjacencyWith(road1.position, out from2to1)) { return(false); } ; //Si llegamos hasta aquí, estan adyacentes y ambos "fromXtoX" tienen información //CheckAdjacency devuelve "true" y el out en "TruckDirection.None" (en ambos) //Si se trata, casualmente, de la misma casilla, devolvemos true automaticamente if (from1to2 == CardinalPoint.None || from2to1 == CardinalPoint.None) { return(true); } //Si road1 no posee la dirección hasta road2, se falla el check if (!road1.HasDirection(from1to2)) { r = false; } //Si road2 no posee la dirección hasta road1, se falla el check if (!road2.HasDirection(from2to1)) { r = false; } return(r); }