design improvements
This commit is contained in:
		| @@ -36,7 +36,7 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener { | ||||
| 	private $maniaControl = null; | ||||
| 	private $adminMenuItems = array(); | ||||
| 	private $playerMenuItems = array(); | ||||
|  | ||||
| 	private $initCompleted = false; | ||||
| 	/** | ||||
| 	 * Create a new Actions Menu | ||||
| 	 * | ||||
| @@ -68,8 +68,10 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener { | ||||
| 		if($playerAction) { | ||||
| 			$this->addPlayerMenuItem($control, $order, $description); | ||||
| 		} else { | ||||
| 			$this->addAdminMenuItem($control, $order,$description); | ||||
| 			$this->addAdminMenuItem($control, $order, $description); | ||||
| 		} | ||||
|  | ||||
| 		$this->rebuildAndShowMenu(); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| @@ -112,6 +114,21 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener { | ||||
| 			$manialinkText = $this->buildMenuIconsManialink($player)->render()->saveXML(); | ||||
| 			$this->maniaControl->manialinkManager->sendManialink($manialinkText, $player->login); | ||||
| 		} | ||||
|  | ||||
| 		$this->initCompleted = true; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Build and show the menus to everyone (if a menu get made after the init) | ||||
| 	 */ | ||||
| 	public function rebuildAndShowMenu() { | ||||
| 		if($this->initCompleted){ | ||||
| 			$players = $this->maniaControl->playerManager->getPlayers(); | ||||
| 			foreach($players as $player) { | ||||
| 				$manialinkText = $this->buildMenuIconsManialink($player)->render()->saveXML(); | ||||
| 				$this->maniaControl->manialinkManager->sendManialink($manialinkText, $player->login); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
|   | ||||
| @@ -26,6 +26,7 @@ class IconManager implements CallbackListener { | ||||
| 	 * Some Default icons | ||||
| 	 */ | ||||
| 	const MX_ICON = 'ManiaExchange.png'; | ||||
| 	const MX_ICON_MOVER = 'ManiaExchange_logo_press.png'; | ||||
|  | ||||
| 	/** | ||||
| 	 * Private Properties | ||||
|   | ||||
| @@ -2,19 +2,24 @@ | ||||
|  | ||||
| namespace ManiaControl\Maps; | ||||
|  | ||||
| use FML\Controls\Quad; | ||||
| use FML\Controls\Quads\Quad_Icons64x64_1; | ||||
| use ManiaControl\Admin\AuthenticationManager; | ||||
| use ManiaControl\Callbacks\CallbackListener; | ||||
| use ManiaControl\Callbacks\CallbackManager; | ||||
| use ManiaControl\Commands\CommandListener; | ||||
| use ManiaControl\ManiaControl; | ||||
| use ManiaControl\Manialinks\IconManager; | ||||
| use ManiaControl\Manialinks\ManialinkPageAnswerListener; | ||||
| use ManiaControl\Players\Player; | ||||
| use WidgetPlugin; | ||||
|  | ||||
| /** | ||||
|  * Class offering commands to manage maps | ||||
|  * | ||||
|  * @author steeffeen & kremsy | ||||
|  */ | ||||
| class MapCommands implements CommandListener, ManialinkPageAnswerListener { | ||||
| class MapCommands implements CommandListener, ManialinkPageAnswerListener,CallbackListener { | ||||
| 	/** | ||||
| 	 * Constants | ||||
| 	 */ | ||||
| @@ -50,35 +55,46 @@ class MapCommands implements CommandListener, ManialinkPageAnswerListener { | ||||
|  | ||||
| 		$this->mapList = new MapList($this->maniaControl); | ||||
|  | ||||
| 		//Menu Open xList | ||||
| 		//Menus Buttons | ||||
| 		$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MC_ONINIT, $this, 'handleOnInit'); | ||||
| 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_OPEN_XLIST, $this, 'command_xList'); | ||||
| 		$itemQuad = new Quad_Icons64x64_1(); | ||||
| 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_Browser); | ||||
| 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_OPEN_MAPLIST, $this, 'command_List'); | ||||
| 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_RESTART_MAP, $this, 'command_RestartMap'); | ||||
| 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_SKIP_MAP, $this, 'command_NextMap'); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Handle on Init | ||||
| 	 * @param array $callback | ||||
| 	 */ | ||||
| 	public function handleOnInit(array $callback){ | ||||
| 		//Menu Open xList | ||||
| 		$itemQuad = new Quad(); | ||||
| 		$itemQuad->setImage($this->maniaControl->manialinkManager->iconManager->getIcon(IconManager::MX_ICON)); | ||||
| 		$itemQuad->setImageFocus($this->maniaControl->manialinkManager->iconManager->getIcon(IconManager::MX_ICON_MOVER)); //TODO move the button to the image manager | ||||
| 		$itemQuad->setAction(self::ACTION_OPEN_XLIST); | ||||
| 		$this->maniaControl->actionsMenu->addMenuItem($itemQuad, true, 3, 'Open MX List'); | ||||
|  | ||||
| 		//Menu Open List | ||||
| 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_OPEN_MAPLIST, $this, 'command_List'); | ||||
| 		$itemQuad = new Quad_Icons64x64_1(); | ||||
| 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_Browser); | ||||
| 		$itemQuad->setAction(self::ACTION_OPEN_MAPLIST); | ||||
| 		$this->maniaControl->actionsMenu->addMenuItem($itemQuad, true, 4,'Open MapList'); | ||||
|  | ||||
| 		//Menu RestartMap | ||||
| 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_RESTART_MAP, $this, 'command_RestartMap'); | ||||
| 		$itemQuad = new Quad_Icons64x64_1(); | ||||
| 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ArrowFastPrev); | ||||
| 		$itemQuad->setAction(self::ACTION_RESTART_MAP); | ||||
| 		$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 0, 'Restart Map'); | ||||
|  | ||||
| 		//Menu NextMap | ||||
| 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_SKIP_MAP, $this, 'command_NextMap'); | ||||
| 		$itemQuad = new Quad_Icons64x64_1(); | ||||
| 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ArrowFastNext); | ||||
| 		$itemQuad->setAction(self::ACTION_SKIP_MAP); | ||||
| 		$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 1, 'Skip Map'); | ||||
| 	} | ||||
|  | ||||
|  | ||||
| 	} | ||||
| 	/** | ||||
| 	 * Handle removemap command | ||||
| 	 * | ||||
|   | ||||
| @@ -5,6 +5,7 @@ namespace ManiaControl\Players; | ||||
| use FML\Controls\Quads\Quad_Icons128x128_1; | ||||
| use FML\Controls\Quads\Quad_Icons128x32_1; | ||||
| use FML\Controls\Quads\Quad_Icons64x64_1; | ||||
| use FML\Controls\Quads\Quad_UIConstruction_Buttons; | ||||
| use ManiaControl\Admin\AuthenticationManager; | ||||
| use ManiaControl\Commands\CommandListener; | ||||
| use ManiaControl\ManiaControl; | ||||
| @@ -72,10 +73,10 @@ class PlayerCommands implements CommandListener, ManialinkPageAnswerListener { | ||||
| 		$itemQuad->setAction(self::ACTION_CANCEL_VOTE); | ||||
| 		$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 6); | ||||
|  | ||||
| 		//Action Balance Teams | ||||
| 		//Action Open Playerlist | ||||
| 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_OPEN_PLAYERLIST, $this, 'command_playerList'); | ||||
| 		$itemQuad = new Quad_Icons128x128_1(); | ||||
| 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_Buddies); | ||||
| 		$itemQuad = new Quad_UIConstruction_Buttons(); | ||||
| 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_Author); | ||||
| 		$itemQuad->setAction(self::ACTION_OPEN_PLAYERLIST); | ||||
| 		$this->maniaControl->actionsMenu->addMenuItem($itemQuad, true, 9); | ||||
| 	} | ||||
|   | ||||
| @@ -48,6 +48,7 @@ class PlayerList implements ManialinkPageAnswerListener, CallbackListener { | ||||
| 	const ACTION_ADD_AS_MOD           = 'PlayerList.PlayerAddAsModerator'; | ||||
| 	const ACTION_REVOKE_RIGHTS        = 'PlayerList.RevokeRights'; | ||||
| 	const ACTION_OPEN_PLAYER_DETAILED = 'PlayerList.OpenPlayerDetailed'; | ||||
| 	const ACTION_SPECTATE_PLAYER      = 'PlayerList.SpectatePlayer'; | ||||
| 	const SHOWN_MAIN_WINDOW           = -1; | ||||
| 	/** | ||||
| 	 * Private properties | ||||
| @@ -252,8 +253,7 @@ class PlayerList implements ManialinkPageAnswerListener, CallbackListener { | ||||
| 			$playerQuad->setSubStyle($playerQuad::SUBSTYLE_Camera); | ||||
| 			$playerQuad->setSize(3.8, 3.8); | ||||
| 			$script->addTooltip($playerQuad, $descriptionLabel, array(Script::OPTION_TOOLTIP_TEXT => "Spectate " . $listPlayer->nickname)); | ||||
| 			$script->addProfileButton($playerQuad, $listPlayer->login); //TODO real action | ||||
|  | ||||
| 			$playerQuad->setAction(self::ACTION_SPECTATE_PLAYER); | ||||
|  | ||||
| 			// Player Profile Quad | ||||
| 			$playerQuad = new Quad_UIConstruction_Buttons(); | ||||
| @@ -585,6 +585,10 @@ class PlayerList implements ManialinkPageAnswerListener, CallbackListener { | ||||
| 		$targetLogin = $actionArray[2]; | ||||
|  | ||||
| 		switch($action) { | ||||
| 			case self::ACTION_SPECTATE_PLAYER: //TODO not working yet | ||||
| 				$this->maniaControl->client->query('ForceSpectator', $adminLogin, PlayerActions::SPECTATOR_SPECTATOR); | ||||
| 				$this->maniaControl->client->query('ForceSpectatorTarget', $adminLogin, $targetLogin, 1); | ||||
| 				break; | ||||
| 			case self::ACTION_OPEN_PLAYER_DETAILED: | ||||
| 				$player = $this->maniaControl->playerManager->getPlayer($adminLogin); | ||||
| 				$this->maniaControl->playerManager->playerDetailed->showPlayerDetailed($player, $targetLogin); | ||||
|   | ||||
| @@ -118,6 +118,7 @@ class WidgetPlugin implements CallbackListener, Plugin { | ||||
| 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_CLOCK_WIDGET_HEIGHT, 5.5); | ||||
|  | ||||
| 		$this->maniaControl->manialinkManager->iconManager->addIcon(IconManager::MX_ICON); | ||||
| 		$this->maniaControl->manialinkManager->iconManager->addIcon(IconManager::MX_ICON_MOVER, "http://www.pictures.esc-clan.net/upload"); //TODO to mc website, icon manager | ||||
| 		return true; | ||||
| 	} | ||||
|  | ||||
| @@ -204,6 +205,7 @@ class WidgetPlugin implements CallbackListener, Plugin { | ||||
| 		if(isset($map->mx->pageurl)) { | ||||
| 			$quad = new Quad(); | ||||
| 			$frame->add($quad); | ||||
| 			$quad->setImageFocus($this->maniaControl->manialinkManager->iconManager->getIcon(IconManager::MX_ICON_MOVER)); | ||||
| 			$quad->setImage($this->maniaControl->manialinkManager->iconManager->getIcon(IconManager::MX_ICON)); | ||||
| 			$quad->setPosition(-$width / 2 + 4, -1.5, -0.5); | ||||
| 			$quad->setSize(4, 4); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user