private function RenderRowOfColony(Colony $c) { $positionData = array("tabindex" => $c->Coordinates()->Planet() + 1, "planet_position" => $c->Coordinates()->Planet()); $planetImage['planet_image'] = $c->PlanetData()->Image(); $nameData = $this->GetPlanetNameDataOfColony($c); $moonImage['moon_image'] = $c->PlanetData()->Image(); // TODO: PLACEHOLDER, put actual moon image here $debrisData['debris'] = "Debris"; // TODO: PLACEHOLDER $ownerData['owner'] = $c->Owner()->Username(); // TODO: PLACEHOLDER $allianceData['alliance'] = "Alliance"; // TODO: PLACEHOLDER $actionData['actions'] = "Actions"; // TODO: PLACEHOLDER, implement PMs and alliances and buddies before doing this $vars = array_merge($positionData, $planetImage, $nameData, $moonImage, $debrisData, $ownerData, $allianceData, $actionData); return Page::StaticRender("galaxy/galaxy_row", $vars, $this->_user->AuthorisationLevelName()); }
public static function FromDatabase(array $row, User $user = NULL) { $colony = new Colony(); // Colony details $colony->Name($row["name"]); $colony->Coordinates(new Coordinates($row["galaxy_position"], $row["system_position"], $row["planet_position"])); $colony->ID($row["ID"]); if ($user == NULL) { $colony->Owner(User::GetOwnerOfColonyID($row["ID"], $colony)); } else { $colony->Owner($user); } $colony->HomeColony($row["is_home_colony"]); // Resources $rowResources = Database::Instance()->ExecuteQuery("SELECT * FROM colony_resources WHERE colonyID = " . $row['ID'] . ";", "SELECT"); $colony->CurrentResources(new Cost($rowResources["metal_available"], $rowResources["crystal_available"], $rowResources["deuterium_available"], 0)); // TODO: Add energy later // Storage $colony->MetalStorage($rowResources['metal_storage_limit']); $colony->CrystalStorage($rowResources['crystal_storage_limit']); $colony->DeuteriumStorage($rowResources['deuterium_storage_limit']); // Get planet surface properties $rowProperties = Database::Instance()->ExecuteQuery("SELECT * FROM colony_properties WHERE colonyID = " . $row['ID'] . ";", "SELECT"); $colony->MaxFields($rowProperties['max_build_fields']); $colony->UsedFields($rowProperties['used_build_fields']); $colony->Diameter($rowProperties['diameter']); $colony->PlanetType(PlanetType::FromDatabase($rowProperties)); $planetData = $colony->PlanetType()->Variations(); $colony->PlanetData($planetData[0]); // "Last updated" variable $colony->LastUpdated($row['last_updated']); // Is this colony a moon? $colony->IsMoon($row['is_moon']); // Get buildings $buildings = BuildingGroup::FromDatabaseByColony($colony); $colony->ProductionUnits($buildings[0]); $colony->BuildingUnits($buildings[1]); // Get combat units $colony->Defenses(CombatGroup::GetDefensesOfColony($colony)); $colony->Fleet(ShipFleet::GetShipsOfColony($colony)); return $colony; }