Exemple #1
0
 public override void Update(Map m, Grid grid, GridInfo info, uint t_diff)
 {
     if (!info.getUnloadLock())
     {
         info.UpdateTimeTracker((int)t_diff);
         if (info.getTimeTracker().Passed())
         {
             if (!m.UnloadGrid(grid, false))
             {
                 Log.outDebug("Grid[{0}, {1}] for map {2} differed unloading due to players or active objects nearby", grid.getX(), grid.getY(), m.GetId());
                 m.ResetGridExpiry(grid);
             }
         }
     }
 }
Exemple #2
0
 public override void Update(Map m, Grid grid, GridInfo info, uint t_diff)
 {
     // Only check grid activity every (grid_expiry/10) ms, because it's really useless to do it every cycle
     info.UpdateTimeTracker((int)t_diff);
     if (info.getTimeTracker().Passed())
     {
         if (grid.GetWorldObjectCountInNGrid <Player>() == 0 && !m.ActiveObjectsNearGrid(grid))
         {
             ObjectGridStoper worker = new ObjectGridStoper();
             var visitor             = new Visitor <ObjectGridStoper>(worker, NotifierObjectType.Grid);
             grid.VisitAllCells(visitor);
             grid.SetGridState(GridState_t.Idle);
             Log.outDebug("Grid[{0}, {1}] on map {2} moved to IDLE state", grid.getX(), grid.getY(), m.GetId());
         }
         else
         {
             m.ResetGridExpiry(grid, 0.1f);
         }
     }
 }