Esempio n. 1
0
    public void GetPathsToRoomsAndObjects(Camper camper, List <Room> rooms, List <RoomObject> objects)
    {
        MultiRoomPathFinder MRPF = getAvailableMRPF();

        if (MRPF == null)
        {
            MRPF = new MultiRoomPathFinder(camper, rooms, objects);
        }
        else
        {
            MRPF.Inizialize(camper, rooms, objects);
        }

        MRPF.CalculatePaths();
        multiRoomPathFinders.Add(MRPF);
    }
Esempio n. 2
0
 // Update is called once per frame
 void Update()
 {
     //for each MRFP, check if all paths have been generated
     foreach (MultiRoomPathFinder MRPF in multiRoomPathFinders)
     {
         if (MRPF.PathsAreGenerated())
         {
             MRPF.SetPathFollowerData();
             toRemove.Add(MRPF);
         }
     }
     //Stop checking values for MRPFs that are no longer being used
     if (toRemove.Count > 0)
     {
         foreach (MultiRoomPathFinder MRPF in toRemove)
         {
             multiRoomPathFinders.Remove(MRPF);
             MRPF.Dispose();
             availableMRPFs.Enqueue(MRPF);
         }
         toRemove.Clear();
     }
 }