trackmania callbacks class
This commit is contained in:
		| @@ -55,6 +55,7 @@ class CallbackManager { | |||||||
| 	 */ | 	 */ | ||||||
| 	public $libXmlRpcCallbacks = null; | 	public $libXmlRpcCallbacks = null; | ||||||
| 	public $shootManiaCallbacks = null; | 	public $shootManiaCallbacks = null; | ||||||
|  | 	public $trackManiaCallbacks = null; | ||||||
|  |  | ||||||
| 	/* | 	/* | ||||||
| 	 * Private Properties | 	 * Private Properties | ||||||
| @@ -71,8 +72,9 @@ class CallbackManager { | |||||||
| 	public function __construct(ManiaControl $maniaControl) { | 	public function __construct(ManiaControl $maniaControl) { | ||||||
| 		$this->maniaControl = $maniaControl; | 		$this->maniaControl = $maniaControl; | ||||||
|  |  | ||||||
| 		$this->shootManiaCallbacks = new ShootManiaCallbacks($maniaControl, $this); |  | ||||||
| 		$this->libXmlRpcCallbacks  = new LibXmlRpcCallbacks($maniaControl, $this); | 		$this->libXmlRpcCallbacks  = new LibXmlRpcCallbacks($maniaControl, $this); | ||||||
|  | 		$this->shootManiaCallbacks = new ShootManiaCallbacks($maniaControl, $this); | ||||||
|  | 		$this->trackManiaCallbacks = new TrackManiaCallbacks($maniaControl, $this); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
|   | |||||||
| @@ -15,9 +15,16 @@ class RecordCallback extends BaseCallback { | |||||||
| 	 */ | 	 */ | ||||||
| 	const CHECKPOINT = 'RecordCallback.Checkpoint'; | 	const CHECKPOINT = 'RecordCallback.Checkpoint'; | ||||||
| 	const FINISH     = 'RecordCallback.Finish'; | 	const FINISH     = 'RecordCallback.Finish'; | ||||||
|  | 	const LAPFINISH  = 'RecordCallback.LapFinish'; | ||||||
|  |  | ||||||
| 	/* | 	/* | ||||||
| 	 * Public Properties | 	 * Public Properties | ||||||
| 	 */ | 	 */ | ||||||
|  | 	public $isEndRace = null; | ||||||
|  | 	public $isEndLap = null; | ||||||
| 	public $time = null; | 	public $time = null; | ||||||
|  | 	public $lapTime = null; | ||||||
|  | 	public $checkpoint = null; | ||||||
|  | 	public $lapCheckpoint = null; | ||||||
|  | 	public $blockId = null; | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										68
									
								
								application/core/Callbacks/TrackManiaCallbacks.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								application/core/Callbacks/TrackManiaCallbacks.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,68 @@ | |||||||
|  | <?php | ||||||
|  |  | ||||||
|  | namespace ManiaControl\Callbacks; | ||||||
|  |  | ||||||
|  | use ManiaControl\Callbacks\Models\RecordCallback; | ||||||
|  | use ManiaControl\ManiaControl; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Class handling and parsing TrackMania Callbacks | ||||||
|  |  * | ||||||
|  |  * @author    ManiaControl Team <mail@maniacontrol.com> | ||||||
|  |  * @copyright 2014 ManiaControl Team | ||||||
|  |  * @license   http://www.gnu.org/licenses/ GNU General Public License, Version 3 | ||||||
|  |  */ | ||||||
|  | class TrackManiaCallbacks implements CallbackListener { | ||||||
|  | 	/* | ||||||
|  | 	 * Private Properties | ||||||
|  | 	 */ | ||||||
|  | 	private $maniaControl = null; | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Create a new TrackMania Callbacks Instance | ||||||
|  | 	 * | ||||||
|  | 	 * @param ManiaControl    $maniaControl | ||||||
|  | 	 * @param CallbackManager $callbackManager | ||||||
|  | 	 */ | ||||||
|  | 	public function __construct(ManiaControl $maniaControl, CallbackManager $callbackManager) { | ||||||
|  | 		$this->maniaControl = $maniaControl; | ||||||
|  |  | ||||||
|  | 		// Register for callbacks | ||||||
|  | 		$callbackManager->registerCallbackListener(Callbacks::ONWAYPOINT, $this, 'handleOnWayPointCallback'); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Handle OnWayPoint Callback | ||||||
|  | 	 * | ||||||
|  | 	 * @param array $callback | ||||||
|  | 	 */ | ||||||
|  | 	public function handleOnWayPointCallback(array $callback) { | ||||||
|  | 		$login  = $callback[0]; | ||||||
|  | 		$player = $this->maniaControl->playerManager->getPlayer($login); | ||||||
|  | 		if (!$player) { | ||||||
|  | 			return; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		// Build callback | ||||||
|  | 		$checkpointCallback              = new RecordCallback(); | ||||||
|  | 		$checkpointCallback->rawCallback = $callback; | ||||||
|  | 		$checkpointCallback->setPlayer($player); | ||||||
|  | 		$checkpointCallback->blockId       = $callback[1]; | ||||||
|  | 		$checkpointCallback->time          = (int)$callback[2]; | ||||||
|  | 		$checkpointCallback->checkpoint    = (int)$callback[3]; | ||||||
|  | 		$checkpointCallback->isEndRace     = (bool)$callback[4]; | ||||||
|  | 		$checkpointCallback->lapTime       = (int)$callback[5]; | ||||||
|  | 		$checkpointCallback->lapCheckpoint = (int)$callback[6]; | ||||||
|  | 		$checkpointCallback->isEndLap      = (bool)$callback[7]; | ||||||
|  |  | ||||||
|  | 		if ($checkpointCallback->isEndRace) { | ||||||
|  | 			$checkpointCallback->name = $checkpointCallback::FINISH; | ||||||
|  | 		} else if ($checkpointCallback->isEndLap) { | ||||||
|  | 			$checkpointCallback->name = $checkpointCallback::LAPFINISH; | ||||||
|  | 		} else { | ||||||
|  | 			$checkpointCallback->name = $checkpointCallback::CHECKPOINT; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		$this->maniaControl->callbackManager->triggerCallback($checkpointCallback); | ||||||
|  | 	} | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user