当前位置: 首页>>代码示例>>PHP>>正文


PHP Game::setName方法代码示例

本文整理汇总了PHP中Game::setName方法的典型用法代码示例。如果您正苦于以下问题:PHP Game::setName方法的具体用法?PHP Game::setName怎么用?PHP Game::setName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Game的用法示例。


在下文中一共展示了Game::setName方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: listTopGames

 public function listTopGames($args = array())
 {
     $response = $this->call('listTopGames', $args);
     $games = [];
     if (is_object($response) === true && isset($response->top) === true) {
         foreach ($response->top as $topgame) {
             $game = new Game();
             $game->setName($topgame->game->name);
             $game->setViewers($topgame->viewers);
             $game->setChannels($topgame->channels);
             $game->setBoxLarge($topgame->game->box->large);
             $game->setBoxMedium($topgame->game->box->medium);
             $game->setBoxSmall($topgame->game->box->small);
             $game->setBoxTemplate($topgame->game->box->template);
             $game->setLogoLarge($topgame->game->logo->large);
             $game->setLogoMedium($topgame->game->logo->medium);
             $game->setLogoSmall($topgame->game->logo->small);
             $game->setLogoTemplate($topgame->game->logo->template);
             $games[] = $game;
         }
     }
     return $games;
 }
开发者ID:johnnymast,项目名称:redbox-twitch,代码行数:23,代码来源:Games.php

示例2: readSessions

 /**
  * @see \Simresults\Data_Reader::readSessions()
  */
 protected function readSessions()
 {
     // Get data
     $data = json_decode($this->data, TRUE);
     // Get date
     preg_match('/\\d{10}/i', $data['Time'], $time_matches);
     $date = new \DateTime();
     $date->setTimestamp($time_matches[0]);
     $date->setTimezone(new \DateTimeZone(self::$default_timezone));
     // Get other settings
     $other_settings = array();
     $known_setting_keys = array('Experience', 'Difficulty', 'FuelUsage', 'MechanicalDamage', 'FlagRules', 'CutRules', 'RaceSeriesFormat', 'WreckerPrevention', 'MandatoryPitstop', 'MandatoryPitstop');
     foreach ($known_setting_keys as $setting) {
         if ($setting_value = Helper::arrayGet($data, $setting)) {
             $other_settings[$setting] = $setting_value;
         }
     }
     // Init sessions array
     $sessions = array();
     // Gather all sessions
     foreach ($data['Sessions'] as $session_data) {
         // Init session
         $session = Session::createInstance();
         // Practice session by default
         $type = Session::TYPE_PRACTICE;
         // Check session type
         switch (strtolower($name = $session_data['Type'])) {
             case 'qualify':
                 $type = Session::TYPE_QUALIFY;
                 break;
             case 'warmup':
                 $type = Session::TYPE_WARMUP;
                 break;
             case 'race':
                 $type = Session::TYPE_RACE;
                 break;
         }
         // Set session values
         $session->setType($type)->setDate($date)->setOtherSettings($other_settings);
         // Set game
         $game = new Game();
         $game->setName('RaceRoom Racing Experience');
         $session->setGame($game);
         // Set server
         $server = new Server();
         $server->setName(Helper::arrayGet($data, 'Server'));
         $session->setServer($server);
         // Set track
         $track = new Track();
         $track->setVenue(Helper::arrayGet($data, 'Track'));
         $session->setTrack($track);
         // Get participants and their best lap (only lap)
         $participants = array();
         $players_data = Helper::arrayGet($session_data, 'Players', array());
         foreach ($players_data as $player_index => $player_data) {
             // Create driver
             $driver = new Driver();
             // Has name
             if ($name = Helper::arrayGet($player_data, 'Username') or $name = Helper::arrayGet($player_data, 'FullName')) {
                 $driver->setName($name);
             } else {
                 $driver->setName('unknown');
             }
             // Create participant and add driver
             $participant = Participant::createInstance();
             $participant->setDrivers(array($driver))->setPosition(Helper::arrayGet($player_data, 'Position', null));
             // Has finish status
             if ($status = Helper::arrayGet($player_data, 'FinishStatus')) {
                 // Figure out status
                 switch (strtolower($status)) {
                     case 'finished':
                         $participant->setFinishStatus(Participant::FINISH_NORMAL);
                         break;
                     case 'disqualified':
                         $participant->setFinishStatus(Participant::FINISH_DQ);
                         break;
                     default:
                         $participant->setFinishStatus(Participant::FINISH_DNF);
                         break;
                 }
             } else {
                 $participant->setFinishStatus(Participant::FINISH_NORMAL);
             }
             // Has total time
             if ($total_time = Helper::arrayGet($player_data, 'TotalTime')) {
                 $participant->setTotalTime(round($player_data['TotalTime'] / 1000, 4));
             }
             // Create vehicle and add to participant
             $vehicle = new Vehicle();
             $vehicle->setName(Helper::arrayGet($player_data, 'Car'));
             $participant->setVehicle($vehicle);
             // Has laps
             if ($laps = Helper::arrayGet($player_data, 'RaceSessionLaps')) {
                 foreach ($laps as $lap_key => $lap_data) {
                     // Negative lap time, skip
                     if ($lap_data['Time'] < 0) {
                         continue;
//.........这里部分代码省略.........
开发者ID:mauserrifle,项目名称:simresults,代码行数:101,代码来源:RaceRoomServer.php

示例3: readSessions

 /**
  * @see \Simresults\Data_Reader::readSessions()
  */
 protected function readSessions()
 {
     // Get array data
     $data = $this->array_data;
     // Init sessions array
     $sessions = array();
     // Loop each session from data
     foreach ($data as $session_data) {
         // Remember which vehicles are parsed
         $vehicle_names = array();
         // Init session
         $session = Session::createInstance();
         // Set session type
         $type = null;
         switch ($session_data['type']) {
             case 'qualify':
                 $type = Session::TYPE_QUALIFY;
                 break;
             case 'practice':
                 $type = Session::TYPE_PRACTICE;
                 break;
             case 'warmup':
                 $type = Session::TYPE_PRACTICE;
                 break;
             case 'race':
                 $type = Session::TYPE_RACE;
                 break;
         }
         $session->setType($type);
         // Set session name
         if (isset($session_data['name'])) {
             $session->setName($session_data['name']);
         }
         // Set max time
         if (isset($session_data['time'])) {
             $session->setMaxMinutes($session_data['time']);
         }
         // Set max laps
         if (isset($session_data['laps'])) {
             $session->setMaxLaps($session_data['laps']);
         }
         // Set game
         $game = new Game();
         $game->setName('Assetto Corsa');
         $session->setGame($game);
         // Has track
         if (isset($session_data['track'])) {
             $track = new Track();
             $track->setVenue($session_data['track']);
             $session->setTrack($track);
         }
         // Has date
         if (isset($session_data['date'])) {
             // Set it
             $session->setDateString($session_data['date']);
         }
         // Set server
         $server = new Server();
         $server->setDedicated(true);
         if (isset($session_data['server'])) {
             $server->setName($session_data['server']);
         } else {
             $server->setName('Unknown');
         }
         $session->setServer($server);
         // Add allowed vehicles
         foreach ($session_data['car_list'] as $vehicle_name) {
             $vehicle = new Vehicle();
             $vehicle->setName($vehicle_name);
             $session->addAllowedVehicle($vehicle);
         }
         // Set chats
         foreach ($session_data['chats'] as $chat_message) {
             $chat = new Chat();
             $chat->setMessage($chat_message);
             $session->addChat($chat);
         }
         // Set participants
         $participants = array();
         foreach ($session_data['participants'] as $part_data) {
             // No name
             if (!Helper::arrayGet($part_data, 'name')) {
                 continue;
             }
             // Create driver
             $driver = new Driver();
             $driver->setName($part_data['name']);
             // Total time not greater than 0
             if (0 >= ($total_time = Helper::arrayGet($part_data, 'total_time'))) {
                 // Total time is null
                 $total_time = null;
             }
             // Create participant and add driver
             $participant = Participant::createInstance();
             $participant->setDrivers(array($driver))->setTotalTime($total_time);
             // Has total time parsed data and should not be a forced DNF
             if ($total_time and !Helper::arrayGet($part_data, 'force_dnf')) {
//.........这里部分代码省略.........
开发者ID:mauserrifle,项目名称:simresults,代码行数:101,代码来源:AssettoCorsaServer.php

示例4: readSessions

 /**
  * @see \Simresults\Data_Reader::readSessions()
  */
 protected function readSessions()
 {
     // Get data
     $data = json_decode($this->data, TRUE);
     // No session data
     if (!($sessions_data = Helper::arrayGet($data, 'sessions'))) {
         // Throw exception
         throw new Exception\Reader('Cannot read the session data');
     }
     // Init sessions array
     $sessions = array();
     // Get extra data for all sessions
     $extras = array();
     foreach (Helper::arrayGet($data, 'extras', array()) as $extras_data) {
         // Get name
         $name = Helper::arrayGet($extras_data, 'name');
         // Loop all values and add as extra settings
         foreach ($extras_data as $extra_data_key => $extra_data_value) {
             // Is name
             if ($extra_data_key === 'name') {
                 // Skip this
                 continue;
             }
             // Add to extras collection
             $extras[ucfirst($name) . ' ' . $extra_data_key] = $extra_data_value;
         }
     }
     // Gather all sessions
     foreach ($sessions_data as $session_data) {
         // Init session
         $session = Session::createInstance();
         // Get participants (do for each session to prevent re-used objects
         // between sessions)
         $participants = array();
         $players_data = Helper::arrayGet($data, 'players', array());
         foreach ($players_data as $player_index => $player_data) {
             // Create driver
             $driver = new Driver();
             $driver->setName(Helper::arrayGet($player_data, 'name'));
             // Create participant and add driver
             $participant = Participant::createInstance();
             $participant->setDrivers(array($driver))->setFinishStatus(Participant::FINISH_NORMAL);
             // Create vehicle and add to participant
             $vehicle = new Vehicle();
             $vehicle->setName(Helper::arrayGet($player_data, 'car'));
             $participant->setVehicle($vehicle);
             // Add participant to collection
             $participants[] = $participant;
         }
         // Practice session by default
         $type = Session::TYPE_PRACTICE;
         // Check session name to get type
         // TODO: Should be checked when full game is released. Also create
         //       tests for it!
         switch (strtolower($name = Helper::arrayGet($session_data, 'name'))) {
             case 'qualify session':
             case 'qualify':
                 $type = Session::TYPE_QUALIFY;
                 break;
             case 'warmup session':
                 $type = Session::TYPE_WARMUP;
                 break;
             case 'race session':
             case 'quick race':
             case 'race':
                 $type = Session::TYPE_RACE;
                 break;
         }
         // Set session values
         $session->setType($type)->setName($name)->setMaxLaps((int) Helper::arrayGet($session_data, 'lapsCount'))->setMaxMinutes((int) Helper::arrayGet($session_data, 'duration'));
         // Set game
         $game = new Game();
         $game->setName('Assetto Corsa');
         $session->setGame($game);
         // Set server (we do not know...)
         $server = new Server();
         $server->setName('Unknown or offline');
         $session->setServer($server);
         // Set track
         $track = new Track();
         $track->setVenue(Helper::arrayGet($data, 'track'));
         $session->setTrack($track);
         // Get the laps
         $laps_data = Helper::arrayGet($session_data, 'laps', array());
         // No laps data
         if (!$laps_data) {
             // Use best laps if possible
             $laps_data = Helper::arrayGet($session_data, 'bestLaps', array());
         }
         // Process laps
         foreach ($laps_data as $lap_data) {
             // Init new lap
             $lap = new Lap();
             // Set participant
             $lap->setParticipant($lap_participant = $participants[$lap_data['car']]);
             // Set first driver of participant as lap driver. AC does
             // not support swapping
//.........这里部分代码省略.........
开发者ID:mauserrifle,项目名称:simresults,代码行数:101,代码来源:AssettoCorsa.php

示例5: searchForGames

 public static function searchForGames($query, $limit = 10)
 {
     self::validateApiKey();
     //Change these if we need to include more stuff.
     $fieldArr = ['id', 'name', 'original_release_date', 'image', 'api_detail_url', 'deck', 'image', 'platforms'];
     //sanitise query
     $query = trim(preg_replace('/ +/', ' ', preg_replace('/[^A-Za-z0-9 ]/', ' ', urldecode(html_entity_decode(strip_tags($query))))));
     //generate url
     $url = self::$gb . 'games?api_key=' . self::$apikey . '&format=json' . self::formatFieldList($fieldArr) . '&limit=' . $limit . '&filter=platforms:17|94|152,name:' . $query;
     //Limit to Mac, PC, Linux respectively.
     try {
         $json = self::makeApiCall($url);
     } catch (Exception $e) {
         throw new GBApiException('Error contacting Giantbomb. Please try again later.');
     }
     //QueryDb and try to find the object using the giantbomb unique id
     if ($json->results == null || count($json->results) < 1) {
         throw new GBApiException('No results found. Please try another search.');
     }
     $games = [];
     //initialise as empty array
     foreach ($json->results as $result) {
         if (!isset($result->original_release_date) || $result->original_release_date == null) {
             continue;
         }
         //skip if not out yet.
         $game = GameQuery::create()->findOneByGbId($result->id);
         if (!isset($game)) {
             $game = new Game();
             $game->setGbId($result->id);
             $game->setName(Game::generateUniqueName($result->name, $result->original_release_date));
         }
         $game->setGbUrl($result->api_detail_url);
         $game->setTitle($result->name);
         $game->setDescription($result->deck);
         //We don't care if they don't have thumbs. Catch the exceptions and move on
         try {
             $game->setGbThumb($result->image->screen_url);
         } catch (Exception $e) {
         }
         try {
             $game->setGbImage($result->image->medium_url);
         } catch (Exception $e) {
         }
         $game->save();
         //Fetch all of the title's platforms from the results we pulled from GB and push them into an array
         $gbplatforms = [];
         foreach ($result->platforms as $gbplatform) {
             array_push($gbplatforms, $gbplatform->id);
         }
         //Remove platforms no longer associated with the title
         $currentPlatforms = $game->getPlatforms();
         foreach ($currentPlatforms as $plat) {
             if (!in_array($plat->getGbId(), $gbplatforms)) {
                 $game->removePlatform($plat);
             }
         }
         //add new platforms associated with the title
         $allPlatforms = Platform::getAllPlatforms();
         foreach ($allPlatforms as $plat) {
             if (in_array($plat->getGbId(), $gbplatforms)) {
                 $found = false;
                 foreach ($currentPlatforms as $curPlat) {
                     if ($curPlat->getId() == $plat->getId()) {
                         $found = true;
                         break;
                     }
                 }
                 if ($found) {
                     continue;
                 }
                 $game->addPlatform($plat);
             }
         }
         //append result to list.
         $game->save();
         array_push($games, $game);
     }
     return $games;
 }
开发者ID:pcmasteratings,项目名称:site,代码行数:80,代码来源:GBApi.php

示例6: readSessions

 /**
  * @see \Simresults\Data_Reader::readSessions()
  */
 protected function readSessions()
 {
     // Get data
     $data = json_decode($this->data, TRUE);
     // Init session
     $session = Session::createInstance();
     // Practice session by default
     $type = Session::TYPE_PRACTICE;
     // Check session name to get type
     // TODO: Could we prevent duplicate code for this with other readers?
     switch (strtolower($name = Helper::arrayGet($data, 'Type'))) {
         case 'qualify session':
         case 'qualify':
             $type = Session::TYPE_QUALIFY;
             break;
         case 'warmup session':
             $type = Session::TYPE_WARMUP;
             break;
         case 'race session':
         case 'quick race':
         case 'race':
             $type = Session::TYPE_RACE;
             break;
     }
     // Set session values
     $session->setType($type)->setName($name)->setMaxLaps((int) Helper::arrayGet($data, 'RaceLaps'));
     // Has Duration
     if ($seconds = (int) Helper::arrayGet($data, 'DurationSecs')) {
         $session->setMaxMinutes(round($seconds / 60));
     } else {
         $session->setMaxMinutes(0);
     }
     // Set game
     $game = new Game();
     $game->setName('Assetto Corsa');
     $session->setGame($game);
     // Set server (we do not know...)
     $server = new Server();
     $server->setName('Unknown');
     $session->setServer($server);
     // Set track
     $track = new Track();
     $track->setVenue(Helper::arrayGet($data, 'TrackName'));
     $session->setTrack($track);
     // Get participants from Cars data
     $participants_by_name = array();
     $players_data = Helper::arrayGet($data, 'Cars', array());
     foreach ($players_data as $player_index => $player_data) {
         // Build participant
         $participant = $this->getParticipant($name = $player_data['Driver']['Name'], $player_data['Driver']['Guid'], $player_data['Model'], $player_data['Driver']['Team'], $player_data['BallastKG'], $player_data['Skin']);
         // Add participant to collection
         $participants_by_name[$name] = $participant;
     }
     // Get participants from result data.
     // WARNING: This should be orded by position but these logs are BUGGED.
     //          DO NOT TRUST!
     $players_data = Helper::arrayGet($data, 'Result', array());
     foreach ($players_data as $player_index => $player_data) {
         // No participant found
         if (!isset($participants_by_name[$player_data['DriverName']])) {
             // Build participant
             $participant = $this->getParticipant($name = $player_data['DriverName'], $player_data['DriverGuid'], $player_data['CarModel'], null, $player_data['BallastKG']);
             // Add participant to collection
             $participants_by_name[$name] = $participant;
         }
         $participant = $participants_by_name[$player_data['DriverName']];
         // Total time available
         if ($total_time = $player_data['TotalTime']) {
             $participant->setTotalTime(round($total_time / 1000, 4));
         } else {
             // DNF
             $participant->setFinishStatus(Participant::FINISH_DNF);
         }
         // Set total time and position (but we can't trust, so we will
         // fix later again)
         $participant->setPosition($player_index + 1);
     }
     // Process laps
     foreach ($data['Laps'] as $lap_data) {
         // Init new lap
         $lap = new Lap();
         // No participant found
         if (!isset($participants_by_name[$lap_data['DriverName']])) {
             // Build participant
             $participant = $this->getParticipant($name = $lap_data['DriverName'], $lap_data['DriverGuid'], $lap_data['CarModel'], null, $lap_data['BallastKG']);
             // Add participant to collection
             $participants_by_name[$name] = $participant;
         }
         $lap_participant = $participants_by_name[$lap_data['DriverName']];
         // Set participant
         $lap->setParticipant($lap_participant);
         // Set first driver of participant as lap driver. AC does
         // not support swapping
         $lap->setDriver($lap_participant->getDriver());
         // Set lap time in seconds
         if ($lap_data['LapTime'] !== 99999) {
             $lap->setTime(round($lap_data['LapTime'] / 1000, 4));
//.........这里部分代码省略.........
开发者ID:mauserrifle,项目名称:simresults,代码行数:101,代码来源:AssettoCorsaServerJson.php

示例7: readSessions

 /**
  * @see \Simresults\Data_Reader::readSessions()
  */
 protected function readSessions()
 {
     // Get data
     $data = json_decode(self::cleanJSON($this->data), TRUE);
     $data = $data['stats'];
     // No session data
     if (!($history_data = $data['history'])) {
         // Throw exception
         throw new Exception\Reader('Cannot read the session data');
     }
     // Remove sessions without stages
     $history_data = array_filter($history_data, function ($data) {
         return (bool) $data['stages'];
     });
     // Get attribute info of project cars to figure out vehicle names etc
     $this->attribute_names = $this->getAttributeNames();
     // Init sessions array
     $sessions = array();
     // Loop each history item
     foreach ($history_data as $history) {
         /**
          * Collect all participants
          */
         $initial_participants_by_ref = array();
         // Depricated! TODO: Remove
         $initial_participants_by_id = array();
         // Loop all member entries and create participants
         foreach ($history['members'] as $part_ref => $part_data) {
             // Get participant
             $participant = $this->getParticipant($part_data);
             // Add participant to collection
             // $initial_participants_by_ref[$part_ref] = $participant;
             $initial_participants_by_id[$part_data['participantid']] = $participant;
         }
         // Get additional info from participants entries
         // Disabled due to duplicate refids bugs 2015-12-14
         // foreach ($history['participants'] as $part_data)
         // {
         //     // Get previously parsed participant
         //     $participant = $initial_participants_by_ref[
         //         $part_data['RefId']];
         //     // Set whether participant is human
         //     $participant->getDriver()->setHuman(
         //         (bool) $part_data['IsPlayer']);
         // }
         // Get server configuration
         $read_settings = array('DamageType', 'FuelUsageType', 'PenaltiesType', 'ServerControlsSetup', 'ServerControlsTrack', 'ServerControlsVehicle', 'ServerControlsVehicleClass', 'TireWearType');
         $session_settings = array();
         foreach ($history['setup'] as $setup_key => $setup_value) {
             if (in_array($setup_key, $read_settings)) {
                 $session_settings[$setup_key] = $setup_value;
             }
         }
         // Loop all stages data
         foreach ($history['stages'] as $type_key => $session_data) {
             // Make new unique array of participants to prevent reference
             // issues across multiple sessions
             $participants_by_ref = array();
             $participants_by_id = array();
             foreach ($initial_participants_by_ref as $part_key => $part) {
                 $participants_by_ref[$part_key] = clone $part;
             }
             foreach ($initial_participants_by_id as $part_key => $part) {
                 $participants_by_id[$part_key] = clone $part;
             }
             // Init session
             $session = Session::createInstance();
             // Practice session by default
             $type = Session::TYPE_PRACTICE;
             // Setup name for session type
             $type_setup_name = ucfirst($type_key);
             // Check session name to get type
             // TODO: Could we prevent duplicate code for this with other readers?
             switch (strtolower(preg_replace('#\\d#', '', $type_key))) {
                 case 'qualifying':
                     $type = Session::TYPE_QUALIFY;
                     $type_setup_name = 'Qualify';
                     break;
                 case 'warmup':
                     $type = Session::TYPE_WARMUP;
                     break;
                 case 'race':
                     $type = Session::TYPE_RACE;
                     break;
             }
             // Date of this session
             $date = new \DateTime();
             $date->setTimestamp($session_data['start_time']);
             $date->setTimezone(new \DateTimeZone(self::$default_timezone));
             // Set session values
             $session->setType($type)->setName($type_key)->setMaxLaps($history['setup'][$type_setup_name . 'Length'])->setDate($date)->setOtherSettings($session_settings);
             // Set game
             $game = new Game();
             $game->setName('Project Cars');
             $session->setGame($game);
             // Set server
             // TODO: Set configurations
//.........这里部分代码省略.........
开发者ID:mauserrifle,项目名称:simresults,代码行数:101,代码来源:ProjectCarsServer.php

示例8: getGame

 /**
  * Get the game
  *
  * @return  Game
  */
 protected function getGame()
 {
     // Create new game
     $game = new Game();
     // Get game version
     $game_version = $this->dom_value('GameVersion');
     // Default game name
     $game_name = 'rFactor 2';
     // Mod is from gamestockcar
     if (preg_match('/reiza[0-9]+\\.rfm/i', $this->dom_value('Mod'))) {
         $game_name = 'Game Stock Car Extreme';
     } elseif (preg_match('/reiza[0-9]+\\.srs/i', $this->dom_value('Mod'))) {
         $game_name = 'Automobilista';
     } elseif ($game_version === '1.255') {
         // It's rfactor 1
         $game_name = 'rFactor';
     }
     // Set game values
     $game->setName($game_name)->setVersion($game_version);
     // Return game
     return $game;
 }
开发者ID:mauserrifle,项目名称:simresults,代码行数:27,代码来源:Rfactor2.php

示例9: getGame

 /**
  * Get the game
  *
  * @return  Game
  */
 protected function getGame()
 {
     // Create new game
     $game = new Game();
     // Get game version
     $game_version = $this->dom_value('GameVersion');
     // Default game name
     $game_name = 'rFactor 2';
     // Game version matches rfactor 1 version. Let's hope rfactor 2 will
     // never use this version :)
     if ($game_version === '1.255') {
         // It's rfactor 1
         $game_name = 'rFactor';
     }
     // Set game values
     $game->setName($game_name)->setVersion($game_version);
     // Return game
     return $game;
 }
开发者ID:bighome,项目名称:simresults,代码行数:24,代码来源:Rfactor2.php

示例10: getSessions

 /**
  * @see \Simresults\Data_Reader::getSessions()
  */
 public function getSessions()
 {
     // Get array data
     $data = $this->array_data;
     // Init sessions array
     $sessions = array();
     // Remember last qualify session to make up grid positions
     $last_qualify_session = null;
     // Loop each session from data
     foreach ($data as $session_data) {
         // Remember which vehicles are parsed
         $vehicle_names = array();
         // Init session
         $session = new Session();
         // Set session type
         $type = null;
         switch ($session_data['type']) {
             case 'qualify':
                 $type = Session::TYPE_QUALIFY;
                 break;
             case 'practice':
                 $type = Session::TYPE_PRACTICE;
                 break;
             case 'warmup':
                 $type = Session::TYPE_PRACTICE;
                 break;
             case 'race':
                 $type = Session::TYPE_RACE;
                 break;
         }
         $session->setType($type);
         // Set session name
         if (isset($session_data['name'])) {
             $session->setName($session_data['name']);
         }
         // Set max time
         if (isset($session_data['time'])) {
             $session->setMaxMinutes($session_data['time']);
         }
         // Set max laps
         if (isset($session_data['laps'])) {
             $session->setMaxLaps($session_data['laps']);
         }
         // Set game
         $game = new Game();
         $game->setName('Assetto Corsa');
         $session->setGame($game);
         // Has track
         if (isset($session_data['track'])) {
             $track = new Track();
             $track->setVenue($session_data['track']);
             $session->setTrack($track);
         }
         // Has date
         if (isset($session_data['date'])) {
             // Set it
             $session->setDateString($session_data['date']);
         }
         // Set server
         $server = new Server();
         $server->setDedicated(true);
         if (isset($session_data['server'])) {
             $server->setName($session_data['server']);
         } else {
             $server->setName('Unknown');
         }
         $session->setServer($server);
         // Add allowed vehicles
         foreach ($session_data['car_list'] as $vehicle_name) {
             $vehicle = new Vehicle();
             $vehicle->setName($vehicle_name);
             $session->addAllowedVehicle($vehicle);
         }
         // Set chats
         foreach ($session_data['chats'] as $chat_message) {
             $chat = new Chat();
             $chat->setMessage($chat_message);
             $session->addChat($chat);
         }
         // Set participants
         $participants = array();
         foreach ($session_data['participants'] as $part_data) {
             // No name
             if (!Helper::arrayGet($part_data, 'name')) {
                 continue;
             }
             // Create driver
             $driver = new Driver();
             $driver->setName($part_data['name']);
             // Total time not greater than 0
             if (0 >= ($total_time = Helper::arrayGet($part_data, 'total_time'))) {
                 // Total time is null
                 $total_time = null;
             }
             // Create participant and add driver
             $participant = new Participant();
             $participant->setDrivers(array($driver))->setTotalTime($total_time);
//.........这里部分代码省略.........
开发者ID:bighome,项目名称:simresults,代码行数:101,代码来源:AssettoCorsaServer.php


注:本文中的Game::setName方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。