Ejemplo n.º 1
0
    /*
     * public bool RoadToTravel(int Destination, out int StartingElement, out VillageRoadSegment RoadToTravel)
     * {
     *  foreach(ConnectionInfo road in Connections)
     *  {
     *      if(Destination == road.VillageNodeID)
     *      {
     *          RoadToTravel = road.Road;
     *          StartingElement = GetClosestIndex(transform.position, road.Road);
     *          return true;
     *      }
     *  }
     *  StartingElement = -1;
     *  RoadToTravel = null;
     *  return false;
     * }
     *
     * public int findConnectionCost(int ID)
     * {
     *  foreach(ConnectionInfo info in Connections)
     *  {
     *      if(info.VillageNodeID == ID)
     *      {
     *          return info.Cost;
     *      }
     *  }
     *  return -1;
     * }
     */
    public int GetClosestIndex(Vector3 Position, VillageRoadSegment seg)
    {
        int   bestSoFar     = -1;
        float bestDistSoFar = float.MaxValue;

        //print(seg.GetComponent<LineRenderer>());
        Vector3[] positions = new Vector3[seg.GetComponent <LineRenderer>().numPositions];
        seg.GetComponent <LineRenderer>().GetPositions(positions);
        for (int i = 0; i < positions.Length; ++i)
        {
            if (bestDistSoFar > Vector3.Distance(Position, positions[i]))
            {
                bestSoFar     = i;
                bestDistSoFar = Vector3.Distance(Position, positions[i]);
            }
        }
        return(bestSoFar);
    }
Ejemplo n.º 2
0
 public void UpdateConnectionGraph(VillageRoadSegment road)
 {
     ConnectionGraph[road.connectedVillages[0].ID][road.connectedVillages[1].ID] = road.Cost;
     ConnectionGraph[road.connectedVillages[1].ID][road.connectedVillages[0].ID] = road.Cost;
 }