Index: binaries/data/mods/public/gui/session/minimap_panel.xml =================================================================== --- binaries/data/mods/public/gui/session/minimap_panel.xml +++ binaries/data/mods/public/gui/session/minimap_panel.xml @@ -7,23 +7,10 @@ > - - if (g_HasIdleWorker) findIdleUnit(g_WorkerTypes); - if (g_HasIdleWorker) Engine.GetGUIObjectByName("idleOverlay").sprite = "stretched:session/minimap-idle-highlight.png"; - if (g_HasIdleWorker) Engine.GetGUIObjectByName("idleOverlay").sprite = "stretched:session/minimap-idle.png"; - if (g_HasIdleWorker) Engine.GetGUIObjectByName("idleOverlay").sprite = "stretched:session/minimap-idle.png"; - if (g_HasIdleWorker) Engine.GetGUIObjectByName("idleOverlay").sprite = "stretched:session/minimap-idle-highlight.png"; - + - + handleMinimapEvent(arguments[0]); Index: binaries/data/mods/public/gui/session/session.js =================================================================== --- binaries/data/mods/public/gui/session/session.js +++ binaries/data/mods/public/gui/session/session.js @@ -286,6 +286,7 @@ initializeMusic(); // before changing the perspective initSessionMenuButtons(); + initMinimapPanelButtons(); for (let slot in Engine.GetGUIObjectByName("panelEntityPanel").children) initPanelEntities(slot); @@ -778,6 +779,38 @@ Engine.SetSimRate(speed); } +function initMinimapPanelButtons() +{ + let idleWorkerButton = Engine.GetGUIObjectByName("idleWorkerButton"); + let idleOverlay = Engine.GetGUIObjectByName("idleOverlay"); + let prefix = "stretched:session/"; + + idleWorkerButton.onPress = function() { + if (g_HasIdleWorker) + findIdleUnit(g_WorkerTypes); + }; + + idleWorkerButton.onMouseEnter = function() { + if (g_HasIdleWorker) + idleOverlay.sprite = prefix + "minimap-idle-highlight.png"; + }; + + idleWorkerButton.onMouseLeave = function() { + if (g_HasIdleWorker) + idleOverlay.sprite = prefix + "minimap-idle.png"; + }; + + idleWorkerButton.onMouseLeftPress = function() { + if (g_HasIdleWorker) + idleOverlay.sprite = prefix + "minimap-idle.png"; + }; + + idleWorkerButton.onMouseLeftRelease = function() { + if (g_HasIdleWorker) + idleOverlay.sprite = prefix + "minimap-idle-highlight.png"; + }; +} + function hasIdleWorker() { return Engine.GuiInterfaceCall("HasIdleUnits", { @@ -799,6 +832,7 @@ else if (idleWorkerButton.sprite != prefix + "minimap-idle-highlight.png") idleWorkerButton.sprite = prefix + "minimap-idle.png"; } + function onSimulationUpdate() { // Templates change depending on technologies and auras, so they have to be reloaded every turn.