for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace eXpansion\Framework\GameTrackmania\DataProviders\ScriptTimeAttack;
use eXpansion\Framework\Core\Storage\GameDataStorage;
use \eXpansion\Framework\GameTrackmania\DataProviders\ScriptBaseRounds\RaceDataProvider as RoundRaceDataProvider;
use Maniaplanet\DedicatedServer\Structures\Map;
/**
* Class RaceDataProvider
*
* @author de Cramer Oliver<[email protected]>
* @copyright 2017 Smile
* @package eXpansion\Framework\GameTrackmania\DataProviders\ScriptBaseRounds
*/
class RaceDataProvider extends RoundRaceDataProvider
{
* @var GameDataStorage
protected $gameDataStorage;
* RaceDataProvider constructor.
* @param GameDataStorage $gameDataStorage
public function __construct(GameDataStorage $gameDataStorage)
$this->gameDataStorage = $gameDataStorage;
}
* Check if data provider is compatible with current situation.
* @return bool
public function isCompatible(Map $map): bool
if (!$map->lapRace) {
return false;
$nbLaps = 1;
if ($map->lapRace) {
$nbLaps = $map->nbLaps;
$scriptSettings = $this->gameDataStorage->getScriptOptions();
if ($scriptSettings['S_ForceLapsNb'] != -1) {
$nbLaps = $scriptSettings['S_ForceLapsNb'];
// If rounds is configured to be single laps then no need for race data. lap is sufficient.
return $nbLaps > 1;