adding check if the mode uses warmup to add the buttons in the menu

This commit is contained in:
kremsy 2014-07-04 18:25:09 +02:00
parent 0ada7f2a1e
commit 4647299ec8
3 changed files with 42 additions and 16 deletions

View File

@ -123,7 +123,9 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener {
$itemMarginFactorY = 1.2;
// If game is shootmania lower the icons position by 20
if ($this->maniaControl->mapManager->getCurrentMap()->getGame() === 'sm') {
if ($this->maniaControl->mapManager->getCurrentMap()
->getGame() === 'sm'
) {
$posY -= $shootManiaOffset;
}
@ -284,10 +286,14 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener {
*/
public function removeMenuItem($order, $playerAction = true) {
if ($playerAction) {
if ($this->playerMenuItems[$order]) {
unset($this->playerMenuItems[$order]);
}
} else {
if ($this->playerMenuItems[$order]) {
unset($this->adminMenuItems[$order]);
}
}
$this->rebuildAndShowMenu();
}

View File

@ -56,6 +56,9 @@ class ShootManiaCallbacks implements CallbackListener {
case 'LibAFK_IsAFK':
$this->triggerAfkStatus($data[0]);
break;
case 'WarmUp_Status':
$this->maniaControl->callbackManager->triggerCallback(Callbacks::WARMUPSTATUS, $data[0]);
break;
case self::CB_TIMEATTACK_ONCHECKPOINT:
$this->handleTimeAttackOnCheckpoint($name, $data);
break;

View File

@ -56,6 +56,8 @@ class ServerCommands implements CallbackListener, CommandListener, ManialinkPage
// Register for callbacks
$this->maniaControl->timerManager->registerTimerListening($this, 'each5Seconds', 5000);
$this->maniaControl->callbackManager->registerCallbackListener(Callbacks::ONINIT, $this, 'handleOnInit');
$this->maniaControl->callbackManager->registerCallbackListener(Callbacks::WARMUPSTATUS, $this, 'handleWarmUpStatus');
// Register for commands
$this->maniaControl->commandManager->registerCommandListener('setservername', $this, 'command_SetServerName', true, 'Sets the ServerName.');
@ -82,19 +84,9 @@ class ServerCommands implements CallbackListener, CommandListener, ManialinkPage
$this->maniaControl->authenticationManager->definePermissionLevel(self::SETTING_PERMISSION_CANCEL_VOTE, AuthenticationManager::AUTH_LEVEL_MODERATOR);
$this->maniaControl->authenticationManager->definePermissionLevel(self::SETTING_PERMISSION_HANDLE_WARMUP, AuthenticationManager::AUTH_LEVEL_MODERATOR);
// Extend WarmUp
$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_EXTEND_WARMUP, $this, 'command_extendWarmup');
$itemQuad = new Quad_BgRaceScore2();
$itemQuad->setSubStyle($itemQuad::SUBSTYLE_SendScore);
$itemQuad->setAction(self::ACTION_EXTEND_WARMUP);
$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 14, 'Extend Warmup');
// Stop WarmUp
$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_END_WARMUP, $this, 'command_endWarmup');
$itemQuad = new Quad_Icons64x64_1();
$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ArrowGreen);
$itemQuad->setAction(self::ACTION_END_WARMUP);
$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 15, 'End Warmup');
//Check if there is WarmUp Enabled in this Mode
//TODO handle the Modescriptevents + answer by an own callback class (answer via closure or dunno)
$this->maniaControl->client->triggerModeScriptEvent("WarmUp_GetStatus");
// Action cancel Vote
$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_CANCEL_VOTE, $this, 'command_cancelVote');
@ -126,6 +118,31 @@ class ServerCommands implements CallbackListener, CommandListener, ManialinkPage
}
}
/**
* Handeling the WarmupStatus Callback, and removes or adds the Menu Items for extending / Stopping warmup
*
* @param $warmupEnabled
*/
public function handleWarmUpStatus($warmupEnabled) {
if ($warmupEnabled) {
// Extend WarmUp
$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_EXTEND_WARMUP, $this, 'command_extendWarmup');
$itemQuad = new Quad_BgRaceScore2();
$itemQuad->setSubStyle($itemQuad::SUBSTYLE_SendScore);
$itemQuad->setAction(self::ACTION_EXTEND_WARMUP);
$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 14, 'Extend Warmup');
// Stop WarmUp
$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_END_WARMUP, $this, 'command_endWarmup');
$itemQuad = new Quad_Icons64x64_1();
$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ArrowGreen);
$itemQuad->setAction(self::ACTION_END_WARMUP);
$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 15, 'End Warmup');
} else {
$this->maniaControl->actionsMenu->removeMenuItem(14, false);
$this->maniaControl->actionsMenu->removeMenuItem(15, false);
}
}
/**
* Handle //cancelvote command