Example #1
0
 public function isItemCeilPlaced(Item $item)
 {
     $reverseFloor = [];
     $ceilLength = $this->getRemainCeilLength();
     foreach ($this->floor as $i) {
         if ($i->getItem()->getLength() <= $ceilLength) {
             $reverseFloor[] = $i;
             $ceilLength -= $i->getItem()->getLength();
             continue;
         }
         break;
     }
     if (empty($reverseFloor)) {
         return false;
     }
     $reverseFloor = array_reverse($reverseFloor);
     $length = $this->getRemainFloorLength();
     /** @var LevelItem $i */
     foreach ($reverseFloor as $i) {
         if ($item->getLength() <= ($length += $i->getItem()->getLength())) {
             if ($item->getHeight() <= $i->getRemainHeight()) {
                 return true;
             }
             break;
         }
     }
 }