Example #1
0
    public function get($planet_id, $nocache = false)
    {
        if ($nocache == true) {
            $this->instance = array();
        }
        $needToSave = false;
        if (isset($this->instance[$planet_id])) {
            return $this->instance[$planet_id];
        }
        $res = $this->redis->hgetall("ressource_" . $planet_id);
        if (count($res) > 0) {
            $json = $res['json'];
        } else {
            $req = $this->db->query('SELECT r.`id`, r.`user_id`, r.`planet_id`, r.`last_date`, r.`energie`, r.`metaux`, r.`cristaux`, 
											r.`population`, r.`tetranium`,
											r.`metaux_grow`, r.`cristaux_grow`, r.`population_grow`, r.`tetranium_grow`, r.`metaux_productivity`, 
											r.`cristaux_productivity`, r.`tetranium_productivity`, r.`limit_cristaux`, r.`limit_population`, 
											r.`limit_metaux`, r.`limit_tetranium`, r.`debris_cristal`, r.`debris_tetranium`, r.`debris_metal`,
											t.`race`
									FROM `ressources` r
										LEFT JOIN user t ON t.user_id = r.user_id
									WHERE r.`planet_id` = "' . $planet_id . '"');
            $race = $req->row['race'];
            unset($req->row['race']);
            $json = json_encode($req->row);
            if ($this->users->isLogged() && $_SESSION['user']['planet_id'] == $planet_id) {
                $needToSave = true;
            }
            $terrains = $this->db->query('SELECT pt.* FROM `planete_type_link` ptl LEFT JOIN `planete_type` pt ON pt.`id` = ptl.`id_planet_type` WHERE ptl.`id_planet` = "' . $planet_id . '"');
            $metaux = 0;
            $cristaux = 0;
            $tetranium = 0;
            if ($terrains->count > 0) {
                foreach ($terrains->rows as $t) {
                    $metaux += $t['metal'];
                    $cristaux += $t['cristal'];
                    $tetranium += $t['tetranium'];
                }
            }
            $terrains = array('metaux' => $metaux, 'cristaux' => $cristaux, 'tetranium' => $tetranium);
        }
        $r = new ressource($json);
        if (isset($race) && $race == "mineur") {
            $r->bonusRaideur();
        }
        if (isset($terrains)) {
            $r->growTerrains($terrains);
        }
        $this->instance[$planet_id] = $r;
        if ($needToSave) {
            self::saveRedis($this->instance[$planet_id]->getDatas());
        }
        return $this->instance[$planet_id];
    }