113 lines
1.9 KiB
PHP
113 lines
1.9 KiB
PHP
<?php
|
|
if(!defined('ONYX')) exit;
|
|
|
|
interface File
|
|
{
|
|
public function objectInFile($object);
|
|
public function nbObjectInFile($object);
|
|
public function addObjet($object, $nombre, surface $planete);
|
|
public function addDemolition($object, $nombre, surface $planete);
|
|
public function delObjet($id, $nombre, $lieu, surface $planete);
|
|
public function ready(surface $planete);
|
|
|
|
public function printFile(surface $planete, $lieu = NULL);
|
|
}
|
|
|
|
class FileCommun
|
|
{
|
|
protected $files = array();
|
|
protected $times = array();
|
|
protected $simultane;
|
|
|
|
function __construct()
|
|
{
|
|
$this->times[] = time();
|
|
$this->simultane = 1;
|
|
}
|
|
|
|
function refreshTime($lieu)
|
|
{
|
|
if (empty($this->files[$lieu]) || count($this->files[$lieu]) < 1)
|
|
$this->times[$lieu] = time();
|
|
}
|
|
|
|
function reajusteVacances($timelost)
|
|
{
|
|
foreach($this->times as $key => $time)
|
|
$this->times[$key] += $timelost;
|
|
|
|
return serialize($this);
|
|
}
|
|
|
|
function hasObject()
|
|
{
|
|
foreach($this->files as $file)
|
|
{
|
|
if (count($file) > 0)
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
function checkMaxSize(surface $planete, $lieu = null)
|
|
{
|
|
$nombre = 0;
|
|
if (isset($lieu))
|
|
{
|
|
if (!empty($this->files[$lieu]))
|
|
$nombre = count($this->files[$lieu]);
|
|
}
|
|
else
|
|
{
|
|
foreach($this->files as $file)
|
|
{
|
|
$nombre += count($file);
|
|
}
|
|
}
|
|
|
|
|
|
return ($nombre < dDonnees::tailleFile($planete));
|
|
}
|
|
|
|
function findShorter()
|
|
{
|
|
$short = 0;
|
|
$value = 99;
|
|
foreach($this->files as $key => $file)
|
|
{
|
|
if ($key >= $this->simultane)
|
|
break;
|
|
|
|
$count = count($file);
|
|
if ($value > $count)
|
|
{
|
|
$value = $count;
|
|
$short = $key;
|
|
}
|
|
}
|
|
|
|
return $short;
|
|
}
|
|
|
|
function findFirstKey($lieu)
|
|
{
|
|
foreach($this->files[$lieu] as $key => $file)
|
|
return $key;
|
|
}
|
|
|
|
|
|
function DEBUG__print()
|
|
{
|
|
var_dump($this);
|
|
var_dump($this->files);
|
|
}
|
|
|
|
function DEBUG__setTime($lieu, $moins)
|
|
{
|
|
$this->times[$lieu] -= $moins;
|
|
|
|
return $this->times[$lieu];
|
|
}
|
|
}
|
|
?>
|