added performance on simplestatslist

This commit is contained in:
kremsy
2017-05-12 21:06:43 +02:00
parent 79f066b473
commit 84eec14b8d
5 changed files with 41 additions and 26 deletions

View File

@ -15,6 +15,7 @@ use ManiaControl\Callbacks\CallbackListener;
use ManiaControl\Callbacks\CallbackManager;
use ManiaControl\Callbacks\Callbacks;
use ManiaControl\Commands\CommandListener;
use ManiaControl\Logger;
use ManiaControl\ManiaControl;
use ManiaControl\Manialinks\LabelLine;
use ManiaControl\Manialinks\ManialinkManager;
@ -178,6 +179,7 @@ class SimpleStatsList implements ManialinkPageAnswerListener, CallbackListener,
// Headline
$posX = $xStart + 55;
$statRankings = array();
foreach ($this->statArray as $key => $stat) {
$ranking = $this->maniaControl->getStatisticManager()->getStatsRanking($stat["Name"]);
if (!empty($ranking)) {
@ -208,6 +210,8 @@ class SimpleStatsList implements ManialinkPageAnswerListener, CallbackListener,
return;
}
$i = 0;
foreach ($statRankings[$order] as $playerId => $value) {
if ($index % self::MAX_PLAYERS_PER_PAGE === 1) {
$pageFrame = new Frame();
@ -237,6 +241,7 @@ class SimpleStatsList implements ManialinkPageAnswerListener, CallbackListener,
$labelLine = new LabelLine($playerFrame);
$posX = $xStart + 55;
foreach ($this->statArray as $stat) {
$statValue = 0;
if (isset($statRankings[$stat['Name']][$playerId])) {
@ -251,10 +256,11 @@ class SimpleStatsList implements ManialinkPageAnswerListener, CallbackListener,
$label = new Label_Text();
$label->setX($posX);
$label->setText(strval($statValue));
$label->addTooltipLabelFeature($descriptionLabel, '$o ' . $stat['Name']);
//$label->addTooltipLabelFeature($descriptionLabel, '$o ' . $stat['Name']);
$labelLine->addLabel($label);
$posX += $stat['Width'];
}
$labelLine->addLabelEntryText($index, $xStart + 5, 9);
@ -273,6 +279,7 @@ class SimpleStatsList implements ManialinkPageAnswerListener, CallbackListener,
$index++;
$posY -= 4;
}
$pagerSize = 6.;
@ -290,7 +297,6 @@ class SimpleStatsList implements ManialinkPageAnswerListener, CallbackListener,
$paging->addButtonControl($pagerNext)->addButtonControl($pagerPrev)->setLabel($pageCountLabel);
$this->maniaControl->getManialinkManager()->displayWidget($maniaLink, $player, 'SimpleStatsList');
}