clock widget
This commit is contained in:
		| @@ -52,10 +52,10 @@ class KarmaPlugin implements CallbackListener, Plugin { | |||||||
| 		// Init settings | 		// Init settings | ||||||
| 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_AVAILABLE_VOTES, '-2,2'); | 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_AVAILABLE_VOTES, '-2,2'); | ||||||
| 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_TITLE, 'Map-Karma'); | 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_TITLE, 'Map-Karma'); | ||||||
| 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_POSX, 90.); | 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_POSX, 160 - 27.5); | ||||||
| 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_POSY, 82.); | 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_POSY, 90 - 10 - 6); | ||||||
| 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_WIDTH, 25.); | 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_WIDTH, 25.); | ||||||
| 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_HEIGHT, 13.); | 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_HEIGHT, 12.); | ||||||
| 		 | 		 | ||||||
| 		// Register for callbacks | 		// Register for callbacks | ||||||
| 		$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MC_ONINIT, $this, 'handleOnInit'); | 		$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MC_ONINIT, $this, 'handleOnInit'); | ||||||
| @@ -452,6 +452,7 @@ class KarmaPlugin implements CallbackListener, Plugin { | |||||||
| 		$titleLabel->setStyle($labelStyle); | 		$titleLabel->setStyle($labelStyle); | ||||||
| 		$titleLabel->setTranslate(true); | 		$titleLabel->setTranslate(true); | ||||||
| 		$titleLabel->setTextSize(1); | 		$titleLabel->setTextSize(1); | ||||||
|  | 		$titleLabel->setScale(0.90); | ||||||
| 		$titleLabel->setText($title); | 		$titleLabel->setText($title); | ||||||
| 		 | 		 | ||||||
| 		$karmaGauge = new Gauge(); | 		$karmaGauge = new Gauge(); | ||||||
|   | |||||||
| @@ -23,13 +23,22 @@ class WidgetPlugin implements CallbackListener, Plugin { | |||||||
| 	const PLUGIN_NAME = 'WidgetPlugin'; | 	const PLUGIN_NAME = 'WidgetPlugin'; | ||||||
| 	const PLUGIN_AUTHOR = 'kremsy'; | 	const PLUGIN_AUTHOR = 'kremsy'; | ||||||
| 	const MLID_MAPWIDGET = 'WidgetPlugin.MapWidget'; | 	const MLID_MAPWIDGET = 'WidgetPlugin.MapWidget'; | ||||||
|  | 	const MLID_CLOCKWIDGET = 'WidgetPlugin.ClockWidget'; | ||||||
|  |  | ||||||
| 	//MapWidget Properties | 	//MapWidget Properties | ||||||
| 	const SETTING_MAP_WIDGET_ACTIVATED = 'Map Widget Activated'; | 	const SETTING_MAP_WIDGET_ACTIVATED = 'Map-Widget Activated'; | ||||||
| 	const SETTING_MAP_WIDGET_POSX = 'Map-Widget-Position: X'; | 	const SETTING_MAP_WIDGET_POSX = 'Map-Widget-Position: X'; | ||||||
| 	const SETTING_MAP_WIDGET_POSY = 'Map-Widget-Position: Y'; | 	const SETTING_MAP_WIDGET_POSY = 'Map-Widget-Position: Y'; | ||||||
| 	const SETTING_MAP_WIDGET_WIDTH = 'Map-Widget-Size: Width'; | 	const SETTING_MAP_WIDGET_WIDTH = 'Map-Widget-Size: Width'; | ||||||
| 	const SETTING_MAP_WIDGET_HEIGHT = 'Map-Widget-Size: Height'; | 	const SETTING_MAP_WIDGET_HEIGHT = 'Map-Widget-Size: Height'; | ||||||
|  |  | ||||||
|  | 	//ClockWidget Properties | ||||||
|  | 	const SETTING_CLOCK_WIDGET_ACTIVATED = 'Clock-Widget Activated'; | ||||||
|  | 	const SETTING_CLOCK_WIDGET_POSX = 'Clock-Widget-Position: X'; | ||||||
|  | 	const SETTING_CLOCK_WIDGET_POSY = 'Clock-Widget-Position: Y'; | ||||||
|  | 	const SETTING_CLOCK_WIDGET_WIDTH = 'Clock-Widget-Size: Width'; | ||||||
|  | 	const SETTING_CLOCK_WIDGET_HEIGHT = 'Clock-Widget-Size: Height'; | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Private properties | 	 * Private properties | ||||||
| 	 */ | 	 */ | ||||||
| @@ -43,12 +52,11 @@ class WidgetPlugin implements CallbackListener, Plugin { | |||||||
| 	 */ | 	 */ | ||||||
| 	public function load(ManiaControl $maniaControl){ | 	public function load(ManiaControl $maniaControl){ | ||||||
| 		$this->maniaControl = $maniaControl; | 		$this->maniaControl = $maniaControl; | ||||||
| 		// TODO: Implement load() method. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 		// Register for callbacks | 		// Register for callbacks | ||||||
| 		$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'); | 		$this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERJOINED, $this, 'handlePlayerConnect'); | ||||||
|  | 		$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MC_1_MINUTE, $this, 'handleEveryMinute'); | ||||||
|  |  | ||||||
| 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_MAP_WIDGET_ACTIVATED, true); | 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_MAP_WIDGET_ACTIVATED, true); | ||||||
| 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_MAP_WIDGET_POSX, 160 - 20); | 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_MAP_WIDGET_POSX, 160 - 20); | ||||||
| @@ -56,7 +64,11 @@ class WidgetPlugin implements CallbackListener, Plugin { | |||||||
| 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_MAP_WIDGET_WIDTH, 40); | 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_MAP_WIDGET_WIDTH, 40); | ||||||
| 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_MAP_WIDGET_HEIGHT, 9.); | 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_MAP_WIDGET_HEIGHT, 9.); | ||||||
|  |  | ||||||
|  | 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_CLOCK_WIDGET_ACTIVATED, true); | ||||||
|  | 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_CLOCK_WIDGET_POSX, 160 - 5); | ||||||
|  | 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_CLOCK_WIDGET_POSY, 90 - 11); | ||||||
|  | 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_CLOCK_WIDGET_WIDTH, 10); | ||||||
|  | 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_CLOCK_WIDGET_HEIGHT, 5.); | ||||||
|  |  | ||||||
| 		return true; | 		return true; | ||||||
| 	} | 	} | ||||||
| @@ -70,6 +82,48 @@ class WidgetPlugin implements CallbackListener, Plugin { | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 	public function displayClockWidget($login = false){ | ||||||
|  | 		$pos_x = $this->maniaControl->settingManager->getSetting($this, self::SETTING_CLOCK_WIDGET_POSX); | ||||||
|  | 		$pos_y = $this->maniaControl->settingManager->getSetting($this, self::SETTING_CLOCK_WIDGET_POSY); | ||||||
|  | 		$width = $this->maniaControl->settingManager->getSetting($this, self::SETTING_CLOCK_WIDGET_WIDTH); | ||||||
|  | 		$height = $this->maniaControl->settingManager->getSetting($this, self::SETTING_CLOCK_WIDGET_HEIGHT); | ||||||
|  | 		$quadStyle = $this->maniaControl->manialinkManager->styleManager->getDefaultQuadStyle(); | ||||||
|  | 		$quadSubstyle = $this->maniaControl->manialinkManager->styleManager->getDefaultQuadSubstyle(); | ||||||
|  |  | ||||||
|  | 		$maniaLink = new ManiaLink(self::MLID_CLOCKWIDGET); | ||||||
|  |  | ||||||
|  | 		//mainframe | ||||||
|  | 		$frame = new Frame(); | ||||||
|  | 		$maniaLink->add($frame); | ||||||
|  | 		$frame->setSize($width,$height); | ||||||
|  | 		$frame->setPosition($pos_x, $pos_y); | ||||||
|  |  | ||||||
|  | 		//Background Quad | ||||||
|  | 		$backgroundQuad = new Quad(); | ||||||
|  | 		$frame->add($backgroundQuad); | ||||||
|  | 		$backgroundQuad->setSize($width,$height); | ||||||
|  | 		$backgroundQuad->setStyles($quadStyle, $quadSubstyle); | ||||||
|  |  | ||||||
|  | 		$localTime = date("H:i", time()); | ||||||
|  |  | ||||||
|  | 		$label = new Label_Text(); | ||||||
|  | 		$frame->add($label); | ||||||
|  | 		$label->setY(1.5); | ||||||
|  | 		$label->setX(0); | ||||||
|  | 		$label->setAlign(Control::CENTER,Control::TOP); | ||||||
|  | 		$label->setZ(0.2); | ||||||
|  | 		$label->setTextSize(1.3); | ||||||
|  | 		$label->setText($localTime); | ||||||
|  | 		$label->setTextColor("FFF"); | ||||||
|  |  | ||||||
|  | 		//Send manialink | ||||||
|  | 		$manialinkText = $maniaLink->render()->saveXML(); | ||||||
|  | 		$this->maniaControl->manialinkManager->sendManialink($manialinkText, $login); | ||||||
|  |  | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Displays the Map Widget | 	 * Displays the Map Widget | ||||||
| 	 * @param $login | 	 * @param $login | ||||||
| @@ -147,6 +201,9 @@ class WidgetPlugin implements CallbackListener, Plugin { | |||||||
| 		if($this->maniaControl->settingManager->getSetting($this, self::SETTING_MAP_WIDGET_ACTIVATED)){ | 		if($this->maniaControl->settingManager->getSetting($this, self::SETTING_MAP_WIDGET_ACTIVATED)){ | ||||||
| 			$this->displayMapWidget(); | 			$this->displayMapWidget(); | ||||||
| 		} | 		} | ||||||
|  | 		if($this->maniaControl->settingManager->getSetting($this, self::SETTING_CLOCK_WIDGET_ACTIVATED)){ | ||||||
|  | 			$this->displayClockWidget(); | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| @@ -160,9 +217,22 @@ class WidgetPlugin implements CallbackListener, Plugin { | |||||||
| 		if($this->maniaControl->settingManager->getSetting($this, self::SETTING_MAP_WIDGET_ACTIVATED)){ | 		if($this->maniaControl->settingManager->getSetting($this, self::SETTING_MAP_WIDGET_ACTIVATED)){ | ||||||
| 			$this->displayMapWidget($player->login); | 			$this->displayMapWidget($player->login); | ||||||
| 		} | 		} | ||||||
|  | 		if($this->maniaControl->settingManager->getSetting($this, self::SETTING_CLOCK_WIDGET_ACTIVATED)){ | ||||||
|  | 			$this->displayClockWidget(); | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Aktualize the clock widget every minute | ||||||
|  | 	 * @param array $callback | ||||||
|  | 	 */ | ||||||
|  | 	public function handleEveryMinute(array $callback) { | ||||||
|  | 		if($this->maniaControl->settingManager->getSetting($this, self::SETTING_CLOCK_WIDGET_ACTIVATED)){ | ||||||
|  | 			$this->displayClockWidget(); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Get plugin id | 	 * Get plugin id | ||||||
| 	 * | 	 * | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user