small fixes
This commit is contained in:
parent
5d8470cb1c
commit
6a6fa56596
@ -22,6 +22,7 @@ use ManiaControl\Commands\CommandListener;
|
|||||||
use ManiaControl\ManiaControl;
|
use ManiaControl\ManiaControl;
|
||||||
use ManiaControl\Manialinks\ManialinkPageAnswerListener;
|
use ManiaControl\Manialinks\ManialinkPageAnswerListener;
|
||||||
use ManiaControl\Players\Player;
|
use ManiaControl\Players\Player;
|
||||||
|
use ManiaControl\Players\PlayerManager;
|
||||||
use ManiaControl\Server\ServerCommands;
|
use ManiaControl\Server\ServerCommands;
|
||||||
|
|
||||||
|
|
||||||
@ -97,6 +98,7 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
|
|||||||
$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MP_PLAYERMANIALINKPAGEANSWER, $this, 'handleManialinkPageAnswer');
|
$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MP_PLAYERMANIALINKPAGEANSWER, $this, 'handleManialinkPageAnswer');
|
||||||
$this->maniaControl->callbackManager->registerCallbackListener(self::CB_CUSTOM_VOTE_FINISHED, $this, 'handleVoteFinished');
|
$this->maniaControl->callbackManager->registerCallbackListener(self::CB_CUSTOM_VOTE_FINISHED, $this, 'handleVoteFinished');
|
||||||
$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MC_ONINIT, $this, 'handleOnInit');
|
$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MC_ONINIT, $this, 'handleOnInit');
|
||||||
|
$this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERJOINED, $this, 'handlePlayerConnect');
|
||||||
|
|
||||||
//Settings
|
//Settings
|
||||||
$this->maniaControl->settingManager->initSetting($this, self::SETTING_VOTE_ICON_POSX, 156.);
|
$this->maniaControl->settingManager->initSetting($this, self::SETTING_VOTE_ICON_POSX, 156.);
|
||||||
@ -131,6 +133,16 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
|
|||||||
unset($this->maniaControl);
|
unset($this->maniaControl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle PlayerConnect callback
|
||||||
|
*
|
||||||
|
* @param array $callback
|
||||||
|
*/
|
||||||
|
public function handlePlayerConnect(array $callback) {
|
||||||
|
$player = $callback[1];
|
||||||
|
$this->showIcon($player->login);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Chat Vote
|
* Chat Vote
|
||||||
*
|
*
|
||||||
@ -152,123 +164,7 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
|
|||||||
* @param array $callback
|
* @param array $callback
|
||||||
*/
|
*/
|
||||||
public function handleOnInit(array $callback) {
|
public function handleOnInit(array $callback) {
|
||||||
$posX = $this->maniaControl->settingManager->getSetting($this, self::SETTING_VOTE_ICON_POSX);
|
$this->showIcon();
|
||||||
$posY = $this->maniaControl->settingManager->getSetting($this, self::SETTING_VOTE_ICON_POSY);
|
|
||||||
$width = $this->maniaControl->settingManager->getSetting($this, self::SETTING_VOTE_ICON_WIDTH);
|
|
||||||
$height = $this->maniaControl->settingManager->getSetting($this, self::SETTING_VOTE_ICON_HEIGHT);
|
|
||||||
$quadStyle = $this->maniaControl->manialinkManager->styleManager->getDefaultQuadStyle();
|
|
||||||
$quadSubstyle = $this->maniaControl->manialinkManager->styleManager->getDefaultQuadSubstyle();
|
|
||||||
$itemMarginFactorX = 1.3;
|
|
||||||
$itemMarginFactorY = 1.2;
|
|
||||||
|
|
||||||
$itemSize = $width;
|
|
||||||
|
|
||||||
$maniaLink = new ManiaLink(self::MLID_ICON);
|
|
||||||
$script = $maniaLink->getScript();
|
|
||||||
|
|
||||||
//Custom Vote Menu Iconsframe
|
|
||||||
$frame = new Frame();
|
|
||||||
$maniaLink->add($frame);
|
|
||||||
$frame->setPosition($posX, $posY);
|
|
||||||
|
|
||||||
$backgroundQuad = new Quad();
|
|
||||||
$frame->add($backgroundQuad);
|
|
||||||
$backgroundQuad->setSize($width * $itemMarginFactorX, $height * $itemMarginFactorY);
|
|
||||||
$backgroundQuad->setStyles($quadStyle, $quadSubstyle);
|
|
||||||
|
|
||||||
$iconFrame = new Frame();
|
|
||||||
$frame->add($iconFrame);
|
|
||||||
|
|
||||||
$iconFrame->setSize($itemSize, $itemSize);
|
|
||||||
$itemQuad = new Quad_Icons64x64_1();
|
|
||||||
$itemQuad->setSubStyle($itemQuad::SUBSTYLE_StateSuggested);
|
|
||||||
$itemQuad->setSize($itemSize, $itemSize);
|
|
||||||
$iconFrame->add($itemQuad);
|
|
||||||
|
|
||||||
//Define Description Label
|
|
||||||
$menuEntries = 4;
|
|
||||||
$descriptionFrame = new Frame();
|
|
||||||
$maniaLink->add($descriptionFrame);
|
|
||||||
$descriptionFrame->setPosition($posX - $menuEntries * $itemSize * 1.15 - 6, $posY);
|
|
||||||
|
|
||||||
$descriptionLabel = new Label();
|
|
||||||
$descriptionFrame->add($descriptionLabel);
|
|
||||||
$descriptionLabel->setAlign(Control::RIGHT, Control::TOP);
|
|
||||||
$descriptionLabel->setSize(40, 4);
|
|
||||||
$descriptionLabel->setTextSize(1.4);
|
|
||||||
$descriptionLabel->setTextColor('fff');
|
|
||||||
|
|
||||||
//Popout Frame
|
|
||||||
$popoutFrame = new Frame();
|
|
||||||
$maniaLink->add($popoutFrame);
|
|
||||||
$popoutFrame->setPosition($posX - $itemSize * 0.5, $posY);
|
|
||||||
$popoutFrame->setHAlign(Control::RIGHT);
|
|
||||||
$popoutFrame->setSize(4 * $itemSize * $itemMarginFactorX, $itemSize * $itemMarginFactorY);
|
|
||||||
|
|
||||||
$backgroundQuad = new Quad();
|
|
||||||
$popoutFrame->add($backgroundQuad);
|
|
||||||
$backgroundQuad->setHAlign(Control::RIGHT);
|
|
||||||
$backgroundQuad->setStyles($quadStyle, $quadSubstyle);
|
|
||||||
$backgroundQuad->setSize($menuEntries * $itemSize * 1.15 + 2, $itemSize * $itemMarginFactorY);
|
|
||||||
|
|
||||||
$script->addToggle($itemQuad, $popoutFrame);
|
|
||||||
|
|
||||||
//Menu Items
|
|
||||||
$x = -1;
|
|
||||||
|
|
||||||
//TODO build dynamically
|
|
||||||
//Vote Balance Teams
|
|
||||||
$itemQuad = new Quad_Icons128x32_1();
|
|
||||||
$popoutFrame->add($itemQuad);
|
|
||||||
$itemQuad->setSubStyle($itemQuad::SUBSTYLE_RT_Team);
|
|
||||||
$itemQuad->setAction(self::ACTION_START_VOTE . 'teambalance');
|
|
||||||
$itemQuad->setSize($itemSize, $itemSize);
|
|
||||||
$itemQuad->setX($x);
|
|
||||||
$itemQuad->setHAlign(Control::RIGHT);
|
|
||||||
$description = '$s' . 'Vote for Team-Balance';
|
|
||||||
$script->addTooltip($itemQuad, $descriptionLabel, array(Script::OPTION_TOOLTIP_TEXT => $description));
|
|
||||||
$x -= $itemSize * 1.05;
|
|
||||||
|
|
||||||
// Vote SkipMap
|
|
||||||
$itemQuad = new Quad_Icons64x64_1();
|
|
||||||
$popoutFrame->add($itemQuad);
|
|
||||||
$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ArrowFastNext);
|
|
||||||
$itemQuad->setAction(self::ACTION_START_VOTE . 'skipmap');
|
|
||||||
$itemQuad->setSize($itemSize, $itemSize);
|
|
||||||
$itemQuad->setX($x);
|
|
||||||
$itemQuad->setHAlign(Control::RIGHT);
|
|
||||||
$description = '$s' . 'Vote for Skip-Map';
|
|
||||||
$script->addTooltip($itemQuad, $descriptionLabel, array(Script::OPTION_TOOLTIP_TEXT => $description));
|
|
||||||
$x -= $itemSize * 1.05;
|
|
||||||
|
|
||||||
// Set Pause
|
|
||||||
$itemQuad = new Quad_Icons128x32_1(); //TODO check if mode supports it
|
|
||||||
$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ManiaLinkSwitch);
|
|
||||||
$popoutFrame->add($itemQuad);
|
|
||||||
$itemQuad->setAction(self::ACTION_START_VOTE . 'pausegame');
|
|
||||||
$itemQuad->setSize($itemSize, $itemSize);
|
|
||||||
$itemQuad->setX($x);
|
|
||||||
$itemQuad->setHAlign(Control::RIGHT);
|
|
||||||
$description = '$s' . 'Vote for a pause of Current Game';
|
|
||||||
$script->addTooltip($itemQuad, $descriptionLabel, array(Script::OPTION_TOOLTIP_TEXT => $description));
|
|
||||||
$x -= $itemSize * 1.05;
|
|
||||||
|
|
||||||
|
|
||||||
// Vote RestartMap
|
|
||||||
$itemQuad = new Quad_UIConstruction_Buttons();
|
|
||||||
$popoutFrame->add($itemQuad);
|
|
||||||
$itemQuad->setSubStyle($itemQuad::SUBSTYLE_Reload);
|
|
||||||
$itemQuad->setAction(self::ACTION_START_VOTE . 'restartmap');
|
|
||||||
$itemQuad->setSize($itemSize, $itemSize);
|
|
||||||
$itemQuad->setX($x);
|
|
||||||
$itemQuad->setHAlign(Control::RIGHT);
|
|
||||||
$description = '$s' . 'Vote for Restart-Map';
|
|
||||||
$script->addTooltip($itemQuad, $descriptionLabel, array(Script::OPTION_TOOLTIP_TEXT => $description));
|
|
||||||
//$x -= $itemSize * 1.05;
|
|
||||||
|
|
||||||
// Send manialink
|
|
||||||
$manialinkText = $maniaLink->render()->saveXML();
|
|
||||||
$this->maniaControl->manialinkManager->sendManialink($manialinkText);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -621,6 +517,132 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
|
|||||||
$this->maniaControl->manialinkManager->sendManialink($manialinkText);
|
$this->maniaControl->manialinkManager->sendManialink($manialinkText);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shows the Icon Widget
|
||||||
|
*
|
||||||
|
* @param bool $login
|
||||||
|
*/
|
||||||
|
private function showIcon($login = false) {
|
||||||
|
$posX = $this->maniaControl->settingManager->getSetting($this, self::SETTING_VOTE_ICON_POSX);
|
||||||
|
$posY = $this->maniaControl->settingManager->getSetting($this, self::SETTING_VOTE_ICON_POSY);
|
||||||
|
$width = $this->maniaControl->settingManager->getSetting($this, self::SETTING_VOTE_ICON_WIDTH);
|
||||||
|
$height = $this->maniaControl->settingManager->getSetting($this, self::SETTING_VOTE_ICON_HEIGHT);
|
||||||
|
$quadStyle = $this->maniaControl->manialinkManager->styleManager->getDefaultQuadStyle();
|
||||||
|
$quadSubstyle = $this->maniaControl->manialinkManager->styleManager->getDefaultQuadSubstyle();
|
||||||
|
$itemMarginFactorX = 1.3;
|
||||||
|
$itemMarginFactorY = 1.2;
|
||||||
|
|
||||||
|
$itemSize = $width;
|
||||||
|
|
||||||
|
$maniaLink = new ManiaLink(self::MLID_ICON);
|
||||||
|
$script = $maniaLink->getScript();
|
||||||
|
|
||||||
|
//Custom Vote Menu Iconsframe
|
||||||
|
$frame = new Frame();
|
||||||
|
$maniaLink->add($frame);
|
||||||
|
$frame->setPosition($posX, $posY);
|
||||||
|
|
||||||
|
$backgroundQuad = new Quad();
|
||||||
|
$frame->add($backgroundQuad);
|
||||||
|
$backgroundQuad->setSize($width * $itemMarginFactorX, $height * $itemMarginFactorY);
|
||||||
|
$backgroundQuad->setStyles($quadStyle, $quadSubstyle);
|
||||||
|
|
||||||
|
$iconFrame = new Frame();
|
||||||
|
$frame->add($iconFrame);
|
||||||
|
|
||||||
|
$iconFrame->setSize($itemSize, $itemSize);
|
||||||
|
$itemQuad = new Quad_Icons64x64_1();
|
||||||
|
$itemQuad->setSubStyle($itemQuad::SUBSTYLE_StateSuggested);
|
||||||
|
$itemQuad->setSize($itemSize, $itemSize);
|
||||||
|
$iconFrame->add($itemQuad);
|
||||||
|
|
||||||
|
//Define Description Label
|
||||||
|
$menuEntries = 4;
|
||||||
|
$descriptionFrame = new Frame();
|
||||||
|
$maniaLink->add($descriptionFrame);
|
||||||
|
$descriptionFrame->setPosition($posX - $menuEntries * $itemSize * 1.15 - 6, $posY);
|
||||||
|
|
||||||
|
$descriptionLabel = new Label();
|
||||||
|
$descriptionFrame->add($descriptionLabel);
|
||||||
|
$descriptionLabel->setAlign(Control::RIGHT, Control::TOP);
|
||||||
|
$descriptionLabel->setSize(40, 4);
|
||||||
|
$descriptionLabel->setTextSize(1.4);
|
||||||
|
$descriptionLabel->setTextColor('fff');
|
||||||
|
|
||||||
|
//Popout Frame
|
||||||
|
$popoutFrame = new Frame();
|
||||||
|
$maniaLink->add($popoutFrame);
|
||||||
|
$popoutFrame->setPosition($posX - $itemSize * 0.5, $posY);
|
||||||
|
$popoutFrame->setHAlign(Control::RIGHT);
|
||||||
|
$popoutFrame->setSize(4 * $itemSize * $itemMarginFactorX, $itemSize * $itemMarginFactorY);
|
||||||
|
|
||||||
|
$backgroundQuad = new Quad();
|
||||||
|
$popoutFrame->add($backgroundQuad);
|
||||||
|
$backgroundQuad->setHAlign(Control::RIGHT);
|
||||||
|
$backgroundQuad->setStyles($quadStyle, $quadSubstyle);
|
||||||
|
$backgroundQuad->setSize($menuEntries * $itemSize * 1.15 + 2, $itemSize * $itemMarginFactorY);
|
||||||
|
|
||||||
|
$script->addToggle($itemQuad, $popoutFrame);
|
||||||
|
|
||||||
|
//Menu Items
|
||||||
|
$x = -1;
|
||||||
|
|
||||||
|
//TODO build dynamically
|
||||||
|
//Vote Balance Teams
|
||||||
|
$itemQuad = new Quad_Icons128x32_1();
|
||||||
|
$popoutFrame->add($itemQuad);
|
||||||
|
$itemQuad->setSubStyle($itemQuad::SUBSTYLE_RT_Team);
|
||||||
|
$itemQuad->setAction(self::ACTION_START_VOTE . 'teambalance');
|
||||||
|
$itemQuad->setSize($itemSize, $itemSize);
|
||||||
|
$itemQuad->setX($x);
|
||||||
|
$itemQuad->setHAlign(Control::RIGHT);
|
||||||
|
$description = '$s' . 'Vote for Team-Balance';
|
||||||
|
$script->addTooltip($itemQuad, $descriptionLabel, array(Script::OPTION_TOOLTIP_TEXT => $description));
|
||||||
|
$x -= $itemSize * 1.05;
|
||||||
|
|
||||||
|
// Vote SkipMap
|
||||||
|
$itemQuad = new Quad_Icons64x64_1();
|
||||||
|
$popoutFrame->add($itemQuad);
|
||||||
|
$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ArrowFastNext);
|
||||||
|
$itemQuad->setAction(self::ACTION_START_VOTE . 'skipmap');
|
||||||
|
$itemQuad->setSize($itemSize, $itemSize);
|
||||||
|
$itemQuad->setX($x);
|
||||||
|
$itemQuad->setHAlign(Control::RIGHT);
|
||||||
|
$description = '$s' . 'Vote for Skip-Map';
|
||||||
|
$script->addTooltip($itemQuad, $descriptionLabel, array(Script::OPTION_TOOLTIP_TEXT => $description));
|
||||||
|
$x -= $itemSize * 1.05;
|
||||||
|
|
||||||
|
// Set Pause
|
||||||
|
$itemQuad = new Quad_Icons128x32_1(); //TODO check if mode supports it
|
||||||
|
$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ManiaLinkSwitch);
|
||||||
|
$popoutFrame->add($itemQuad);
|
||||||
|
$itemQuad->setAction(self::ACTION_START_VOTE . 'pausegame');
|
||||||
|
$itemQuad->setSize($itemSize, $itemSize);
|
||||||
|
$itemQuad->setX($x);
|
||||||
|
$itemQuad->setHAlign(Control::RIGHT);
|
||||||
|
$description = '$s' . 'Vote for a pause of Current Game';
|
||||||
|
$script->addTooltip($itemQuad, $descriptionLabel, array(Script::OPTION_TOOLTIP_TEXT => $description));
|
||||||
|
$x -= $itemSize * 1.05;
|
||||||
|
|
||||||
|
|
||||||
|
// Vote RestartMap
|
||||||
|
$itemQuad = new Quad_UIConstruction_Buttons();
|
||||||
|
$popoutFrame->add($itemQuad);
|
||||||
|
$itemQuad->setSubStyle($itemQuad::SUBSTYLE_Reload);
|
||||||
|
$itemQuad->setAction(self::ACTION_START_VOTE . 'restartmap');
|
||||||
|
$itemQuad->setSize($itemSize, $itemSize);
|
||||||
|
$itemQuad->setX($x);
|
||||||
|
$itemQuad->setHAlign(Control::RIGHT);
|
||||||
|
$description = '$s' . 'Vote for Restart-Map';
|
||||||
|
$script->addTooltip($itemQuad, $descriptionLabel, array(Script::OPTION_TOOLTIP_TEXT => $description));
|
||||||
|
//$x -= $itemSize * 1.05;
|
||||||
|
|
||||||
|
// Send manialink
|
||||||
|
$manialinkText = $maniaLink->render()->saveXML();
|
||||||
|
$this->maniaControl->manialinkManager->sendManialink($manialinkText, $login);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get plugin id
|
* Get plugin id
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user