protected function onConstruct() { $this->setLayer(\ManiaLive\Gui\Window::LAYER_CUT_SCENE); $this->setSize(self::SIZE_X, self::SIZE_Y); $this->setRelativeAlign('center', 'top'); $this->setPosition(0, 84); $this->bg = new Elements\Quad(self::SIZE_X, self::SIZE_Y); $this->bg->setImage('file://Media/Manialinks/Common/Lobbies/header.png'); $this->bg->setAlign('center'); $this->addComponent($this->bg); $this->serverNameLabel = new Elements\Label(self::SIZE_X - 7); $this->serverNameLabel->setStyle(Elements\Label::TextRaceMessage); $this->serverNameLabel->setAlign('center', 'top'); $this->serverNameLabel->setPosition(0, -4); $this->serverNameLabel->setTextSize(3); $this->addComponent($this->serverNameLabel); $this->avgWaitingTimeLabel = new Elements\Label(self::SIZE_X / 3); $this->avgWaitingTimeLabel->setAlign('right', 'center'); $this->avgWaitingTimeLabel->setStyle(Elements\Label::TextRaceMessage); $this->avgWaitingTimeLabel->setPosition(self::SIZE_X / 2 - 5, -16); $this->avgWaitingTimeLabel->setTextId('avgWaiting'); $this->avgWaitingTimeLabel->setTextSize(2); $this->avgWaitingTimeLabel->setOpacity(0.75); $this->addComponent($this->avgWaitingTimeLabel); $this->avgWaitingTimeHelperLabel = new Elements\Label(self::SIZE_X / 2); $this->avgWaitingTimeHelperLabel->setAlign('right', 'top'); $this->avgWaitingTimeHelperLabel->setStyle(Elements\Label::TextRaceMessage); $this->avgWaitingTimeHelperLabel->setPosition($this->avgWaitingTimeLabel->getPosX(), -18); $this->avgWaitingTimeHelperLabel->setTextId('avgWaitingHelper'); $this->avgWaitingTimeHelperLabel->setScale(0.5); $this->avgWaitingTimeHelperLabel->setOpacity(0.5); $this->addComponent($this->avgWaitingTimeHelperLabel); $this->playerCountLabel = new Elements\Label(self::SIZE_X / 3); $this->playerCountLabel->setAlign('left', 'center'); $this->playerCountLabel->setStyle(Elements\Label::TextRaceMessage); $this->playerCountLabel->setPosition(-self::SIZE_X / 2 + 5, -16); $this->playerCountLabel->setOpacity(0.75); $this->playerCountLabel->setTextSize(2); $this->playerCountLabel->setTextid('nPlayers'); $this->addComponent($this->playerCountLabel); $this->playerCountHelperLabel = new Elements\Label(self::SIZE_X / 2); $this->playerCountHelperLabel->setAlign('left', 'top'); $this->playerCountHelperLabel->setStyle(Elements\Label::TextRaceMessage); $this->playerCountHelperLabel->setPosition($this->playerCountLabel->getPosX(), -18); $this->playerCountHelperLabel->setTextId('nPlayersHelper'); $this->playerCountHelperLabel->setScale(0.5); $this->playerCountHelperLabel->setOpacity(0.5); $this->addComponent($this->playerCountHelperLabel); }
public function display() { Manialink::load(); Manialink::appendXML(Dictionary::getInstance()->getManiaLink($this->displayedText)); Manialink::appendScript(<<<MANIASCRIPT #RequireContext CMlScript #Include "MathLib" as MathLib #Include "TextLib" as TextLib main() { \tdeclare Boolean countdown = True; \tdeclare Integer countdownTime = CurrentTime; \tdeclare Integer countdownTimeLeft = 10; \tdeclare CMlFrame frame <=> (Page.MainFrame.GetFirstChild("block-quit") as CMlFrame); \tdeclare CMlLabel label <=> (Page.MainFrame.GetFirstChild("countdown-label") as CMlLabel); \tlabel.SetText(TextLib::ToText(countdownTimeLeft)); \twhile(True) \t{ \t\tif(countdown && countdownTimeLeft >= 0 && CurrentTime - countdownTime > 1000) \t\t{ \t\t\tcountdownTime = CurrentTime; \t\t\tcountdownTimeLeft = countdownTimeLeft - 1; \t\t\tlabel.SetText(TextLib::ToText(countdownTimeLeft)); \t\t} \t\telse if(countdown && countdownTimeLeft <= 0) \t\t{ \t\t\tframe.Hide(); \t\t} \t\tyield; \t} } MANIASCRIPT ); $frame = new \ManiaLib\Gui\Elements\Frame(); $frame->setPosition(0, 5, 0); $label = new Label(170); $label->setAlign('center', 'center2'); $label->setStyle(Label::TextRaceMessageBig); $label->setTextSize(5); $label->setTextColor('f00'); $label->setTextId('text'); $frame->add($label); $iconBlink = new Icons128x128_Blink(15); $iconBlink->setAlign('right', 'center'); $iconBlink->setPosition(-87, 0); $iconBlink->setSubStyle(Icons128x128_Blink::Hard); $frame->add($iconBlink); $iconBlink = new Icons128x128_Blink(15); $iconBlink->setAlign('left', 'center'); $iconBlink->setPosition(87, 0); $iconBlink->setSubStyle(Icons128x128_Blink::Hard); $frame->add($iconBlink); $frame->save(); $frame = new \ManiaLib\Gui\Elements\Frame(); $frame->setPosition(0, -6.5, 10); $frame->setScriptEvents(); $frame->setId('block-quit'); $bg = new Bgs1(180, 45); $bg->setSubStyle(Bgs1::BgDialogBlur); $bg->setAlign('center'); $bg->setScriptEvents(); $bg->setId('background'); $bg->setManialink(''); $frame->add($bg); $bg = new Quad(180, 45); $bg->setBgcolor('0008'); $bg->setAlign('center'); $bg->setScriptEvents(); $frame->add($bg); $ui = new Label(120); $ui->setAlign('center'); $ui->setPosition(0, -6, 0.1); $ui->setStyle(Label::TextRaceMessageBig); $ui->setTextSize(4); $ui->setTextid('available'); $frame->add($ui); $ui = new Label(20); $ui->setId('countdown-label'); $ui->setAlign('center'); $ui->setPosition(0, -15, 0.1); $ui->setStyle(Label::TextRaceMessageBig); $ui->setTextSize(5); $ui->setText('10'); $frame->add($ui); $frame->save(); return Manialink::render(true); }