Exemplo n.º 1
0
 public static function deactive(Block $source, $updateLevel)
 {
     $queue = new \SplPriorityQueue();
     $queue->setExtractFlags(\SplPriorityQueue::EXTR_BOTH);
     if (!$source->isPowerSource()) {
         return;
     }
     self::addToDeactiveQueue($queue, $source, $updateLevel);
     while (!$queue->isEmpty()) {
         $ex = $queue->extract();
         $updating = $ex["data"];
         $power = $ex["priority"];
         /** @var Block $updating */
         $updating->setPowerLevel(0);
         $updating->level->setBlock($updating, $updating, true);
         self::addToDeactiveQueue($queue, $updating, $power);
     }
 }