コード例 #1
0
 public static function Instance()
 {
     if (!self::$_instance) {
         self::$_instance = new ResourceParser();
     }
     return self::$_instance;
 }
コード例 #2
0
 public static function FromDatabase($row)
 {
     $id = $row['class'];
     $planetType = ResourceParser::Instance()->GetPlanetTypeByID($id);
     $variation = array();
     $variation[] = PlanetData::FromDatabase($row);
     return new PlanetType($planetType->PlanetClass(), $id, $planetType->AllowedBuildings(), $variation);
 }
コード例 #3
0
 public static function FromList(array $list)
 {
     $members = array();
     foreach ($list as $itemName) {
         $members[] = clone ResourceParser::Instance()->GetItemByName($itemName);
     }
     return new ResourceGroup($members);
 }
コード例 #4
0
 public static function GenerateShips(Colony $colony)
 {
     $list = ResourceParser::Instance()->ShipUnits();
     $list = ResourceParser::Instance()->ShipUnits();
     foreach ($list as $unit) {
         $unit->Amount(0);
     }
     return new ShipFleet($list, $colony, 0);
 }
コード例 #5
0
 public static function FromDatabase(array $row, Colony $colony)
 {
     $members = array();
     foreach ($row as $rowName => $rowValue) {
         $buildObject = clone ResourceParser::Instance()->GetItemByName($rowName);
         $buildObject->Amount($rowValue);
         $members[$rowName] = $buildObject;
     }
     $newGroup = new BuildingGroup();
     $newGroup->Members($members);
     $newGroup->Colony($colony);
     return $newGroup;
 }
コード例 #6
0
 public static function FromDatabase(array $buildData, Colony $colony)
 {
     $members = array();
     // Build a list of BuildItems
     foreach ($buildData as $row) {
         $itemName = ResourceParser::Instance()->GetItemNameByID($row['resource_type_being_built']);
         $itemObject = clone ResourceParser::Instance()->GetItemByName($itemName);
         $itemObject->Amount($row['amount_requested'], false);
         $positionInList = $row['build_list_position'];
         $members[$positionInList] =& BuildItem::FromIDResource($itemObject, $positionInList, $positionInList, 0, NULL);
     }
     $rg = new BuildGroup($members, $colony);
     $rg->UpdateBuildTimes();
     return $rg;
 }
コード例 #7
0
ファイル: class_resource.php プロジェクト: beerdude26/NewNova
 public static function MakeListFrom(array $list, $useNamesAsIndices = true)
 {
     $members = array();
     foreach ($list as $itemName => $itemAmount) {
         // TODO: MAKE SURE THIS IS A NEW INSTANCE OF THE OBJECT,
         // AS WE CHANGE THE AMOUNT
         $itemObject = clone ResourceParser::Instance()->GetItemByName($itemName);
         $itemObject->Amount($itemAmount);
         if ($useNamesAsIndices) {
             $members[$itemName] = $itemObject;
         } else {
             $members[] = $itemObject;
         }
     }
     return $members;
 }
コード例 #8
0
 public static function FromDatabase(array $buildData, Colony $colony, $updateBuildTimes = true)
 {
     $members = array();
     // Build a list of BuildItems
     foreach ($buildData as $row) {
         $itemName = ResourceParser::Instance()->GetItemNameByID($row['resource_type_being_built']);
         $itemObject = clone ResourceParser::Instance()->GetItemByName($itemName);
         $itemObject->Amount(1);
         $positionInList = $row['build_list_position'];
         $level = $row['level'];
         $members[$positionInList] =& BuildingBuildItem::FromIDResource($itemObject, $positionInList, $positionInList, 0, $level, NULL);
     }
     $bg = new BuildingBuildGroup($members, $colony);
     if ($updateBuildTimes) {
         $bg->UpdateBuildTimes();
     }
     return $bg;
 }
コード例 #9
0
 public static function FromDatabase(array $row, User $user)
 {
     $members = array();
     $changes = array();
     $row = array_slice($row, 1);
     // Slice off userID column
     foreach ($row as $rowName => $rowValue) {
         $techObject = clone ResourceParser::Instance()->GetTechnologyByName($rowName);
         $techObject->Amount($rowValue);
         $members[$rowName] = $techObject;
         $changes[$rowName] = false;
     }
     $technologyGroup = new TechnologyGroup();
     $technologyGroup->Members($members);
     $technologyGroup->Owner($user);
     $technologyGroup->Changes($changes);
     return $technologyGroup;
 }
コード例 #10
0
 public static function FromDatabase(array $row, User $user)
 {
     $members = array();
     $changes = array();
     $row = array_slice($row, 4);
     // Slice off first four folumns
     foreach ($row as $rowName => $rowValue) {
         $splitName = explode("_", $rowName);
         // Name is of the type "X_level"
         $rowName = $splitName[0];
         $officerObject = clone ResourceParser::Instance()->GetOfficerByName($rowName);
         $officerObject->Amount($rowValue);
         $members[$rowName] = $officerObject;
         $changes[$rowName] = false;
     }
     $officerGroup = new OfficerGroup();
     $officerGroup->Members($members);
     $officerGroup->Owner($user);
     $officerGroup->Changes($changes);
     return $officerGroup;
 }
コード例 #11
0
 public function __toString()
 {
     $itemName = ResourceParser::Instance()->GetItemNameByID($this->ID());
     $id = $this->ID();
     $amount = $this->Amount();
     $pos = $this->PositionInList();
     $oldpos = $this->OldPositionInList();
     $level = $this->Level();
     return "BuildingBuildItem for the IDResource {$itemName} ({$id}), amount = {$amount}, level = {$level}\nNew position: {$pos}, old position: {$oldpos}";
 }
コード例 #12
0
ファイル: class_user.php プロジェクト: beerdude26/NewNova
 public function Language()
 {
     global $NN_config;
     // TODO: read preferred language from database
     return ResourceParser::Instance()->GetLanguageByName($NN_config["default_language"]);
 }
コード例 #13
0
ファイル: buildings.php プロジェクト: beerdude26/NewNova
             $id = $_GET['building'];
             $itemName = ResourceParser::Instance()->GetItemNameByID($id);
             $pos = $_GET['build_position'];
             $action = new UserAction($user);
             // Check if we want to delete the first item
             $firstItem = false;
             $visualPos = $_GET['viewposition'];
             if ($visualPos == 1) {
                 $firstItem = true;
             }
             // Only recalculate commissioned time when first item is deleted
             $action->CancelBuildings(array($itemName), array($pos), $firstItem);
             break;
         case "update":
             $id = $_GET['building'];
             $itemName = ResourceParser::Instance()->GetItemNameByID($id);
             $pos = $_GET['position'];
             Database::Instance()->SetDebugging(true);
             // Tap into the Think function and override it for a second
             Think::Instance()->OverrideUser($user);
             Think::Instance()->ConstructBuildingsOf($user->CurrentColony());
             Think::Instance()->ReturnControl();
             break;
         case "reorder":
             $rows = explode("_", $_GET['rows']);
             $rb = ResourceBuilder::GetBuildingListOfColony($user->CurrentColony(), false);
             $rb->BuildList()->Reorder($rows);
             $rb->BuildList()->UpdateDatabase();
             break;
     }
 }
コード例 #14
0
ファイル: extratest.php プロジェクト: beerdude26/NewNova
require_once "classes\\class_resourceparser.php";
// $time1 = microtime();
// $dapsap = array();
// for( $i = 0; $i < 1000; $i++)
// {
// $kbytes = memory_get_usage() / 1024;
// echo "current memory usage: $kbytes KB<br/>";
// $dapsap[$i] = new ResourceParser();
// }
// $time2 = microtime();
// $result = $time2 - $time1;
// echo "time used: ".$result."<br/>";
// $peak = memory_get_peak_usage() / 1024;
// echo "peak memory usage: ".$peak." KB";
Helper::var_dump_pre(ResourceParser::Instance()->ProductionUnits());
Helper::var_dump_pre(ResourceParser::Instance()->BuildingUnits());
Helper::var_dump_pre(ResourceParser::Instance()->Technologies());
Helper::var_dump_pre(ResourceParser::Instance()->DefenseUnits());
Helper::var_dump_pre(ResourceParser::Instance()->ShipUnits());
Helper::var_dump_pre(ResourceParser::Instance()->MissileUnits());
Helper::var_dump_pre(ResourceParser::Instance()->Officers());
$cost = new Cost(100, 100, 100, 100);
$cost1 = new Cost(50, 50, 50, 50);
$res = new Resource("Test", $cost, NULL, NULL);
$cost->AddCost($res);
$cost1->AddCost($cost);
Helper::var_dump_pre($cost);
Helper::var_dump_pre($cost1);
?>

コード例 #15
0
 public function GetActualUnit()
 {
     return ResourceParser::Instance()->GetCombatUnit($this->_unit);
 }
コード例 #16
0
ファイル: class_page.php プロジェクト: beerdude26/NewNova
 private function CommonFiles()
 {
     global $NN_config;
     require 'root.inc';
     // Load language files
     //$currentUser = User::GetCurrentUser();
     //$variables = $currentUser->Language()->Files();
     //$variables['ENCODING'] = $currentUser->Language()->Encoding();
     // TODO: Modify this code to use the $currentUser variable
     if (!is_array($this->_languageFiles)) {
         $variables = ResourceParser::Instance()->GetLanguageByName("english")->GetFilesByPage($this->_languageFiles);
     } else {
         $variables = array();
         foreach ($this->_languageFiles as $languageFile) {
             $variables = array_merge($variables, ResourceParser::Instance()->GetLanguageByName("english")->GetFilesByPage($languageFile));
         }
     }
     $variables['ENCODING'] = "UTF-8";
     // Load skin path
     $variables['skinpath'] = $ROOT . "/inc/game_skins/" . $NN_config["default_skin"] . "/";
     return $variables;
 }