49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
buttonsWindow = nil
 | 
						|
contentsPanel = nil
 | 
						|
 | 
						|
function init()
 | 
						|
  buttonsWindow = g_ui.loadUI('buttons', modules.game_interface.getRightPanel())
 | 
						|
  buttonsWindow:disableResize()
 | 
						|
  buttonsWindow:setup()
 | 
						|
  contentsPanel = buttonsWindow.contentsPanel
 | 
						|
  if not buttonsWindow.forceOpen or not contentsPanel.buttons then
 | 
						|
    buttonsWindow:close()
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
function terminate()
 | 
						|
  buttonsWindow:destroy()
 | 
						|
end
 | 
						|
 | 
						|
function takeButtons(buttons)
 | 
						|
  if not buttonsWindow.forceOpen or not contentsPanel.buttons then return end
 | 
						|
  for i, button in ipairs(buttons) do
 | 
						|
    takeButton(button, true)
 | 
						|
  end
 | 
						|
  updateOrder()
 | 
						|
end
 | 
						|
 | 
						|
function takeButton(button, dontUpdateOrder)
 | 
						|
  if not buttonsWindow.forceOpen or not contentsPanel.buttons then return end
 | 
						|
  button:setParent(contentsPanel.buttons)
 | 
						|
  if not dontUpdateOrder then
 | 
						|
    updateOrder()
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
function updateOrder()
 | 
						|
   local children = contentsPanel.buttons:getChildren()
 | 
						|
   table.sort(children, function(a, b)
 | 
						|
    return (a.index or 1000) < (b.index or 1000)
 | 
						|
   end)
 | 
						|
   contentsPanel.buttons:reorderChildren(children)
 | 
						|
   local visibleCount = 0
 | 
						|
   for _, child in ipairs(children) do
 | 
						|
    if child:isVisible() then
 | 
						|
      visibleCount = visibleCount + 1
 | 
						|
    end
 | 
						|
   end
 | 
						|
   if visibleCount > 6 and buttonsWindow:getHeight() < 30 then
 | 
						|
    buttonsWindow:setHeight(buttonsWindow:getHeight() + 22)
 | 
						|
   end
 | 
						|
end |