75 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
local activeWindow
 | 
						|
 | 
						|
function init()
 | 
						|
  g_ui.importStyle('itemselector')
 | 
						|
 | 
						|
  connect(g_game, { onGameEnd = destroyWindow })
 | 
						|
end
 | 
						|
 | 
						|
function terminate()
 | 
						|
  disconnect(g_game, { onGameEnd = destroyWindow })
 | 
						|
 | 
						|
  destroyWindow()
 | 
						|
end
 | 
						|
 | 
						|
function destroyWindow()
 | 
						|
  if activeWindow then
 | 
						|
    activeWindow:destroy()
 | 
						|
    activeWindow = nil
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
function show(itemWidget)
 | 
						|
  if not itemWidget then
 | 
						|
    return
 | 
						|
  end
 | 
						|
  if activeWindow then
 | 
						|
    destroyWindow()
 | 
						|
  end
 | 
						|
  local window = g_ui.createWidget('ItemSelectorWindow', rootWidget)
 | 
						|
  
 | 
						|
  local destroy = function()
 | 
						|
    window:destroy()
 | 
						|
    if window == activeWindow then
 | 
						|
      activeWindow = nil
 | 
						|
    end
 | 
						|
  end
 | 
						|
  local doneFunc = function()
 | 
						|
    itemWidget:setItem(Item.create(window.item:getItemId(), window.item:getItemCount()))
 | 
						|
    destroy()
 | 
						|
  end
 | 
						|
  local clearFunc = function()
 | 
						|
    window.item:setItemId(0)
 | 
						|
    window.item:setItemCount(0)
 | 
						|
    doneFunc()
 | 
						|
  end
 | 
						|
  
 | 
						|
  window.clearButton.onClick = clearFunc
 | 
						|
  window.okButton.onClick = doneFunc
 | 
						|
  window.cancelButton.onClick = destroy
 | 
						|
  window.onEnter = doneFunc
 | 
						|
  window.onEscape = destroy
 | 
						|
  
 | 
						|
  window.item:setItem(Item.create(itemWidget:getItemId(), itemWidget:getItemCount()))
 | 
						|
  
 | 
						|
  window.itemId:setValue(itemWidget:getItemId())
 | 
						|
  if itemWidget:getItemCount() > 1 then
 | 
						|
    window.itemCount:setValue(itemWidget:getItemCount())
 | 
						|
  end
 | 
						|
  
 | 
						|
  window.itemId.onValueChange = function(widget, value)
 | 
						|
    window.item:setItemId(value)
 | 
						|
  end
 | 
						|
  window.itemCount.onValueChange = function(widget, value)
 | 
						|
    window.item:setItemCount(value)
 | 
						|
  end
 | 
						|
  
 | 
						|
  activeWindow = window
 | 
						|
  activeWindow:raise()
 | 
						|
  activeWindow:focus()
 | 
						|
end
 | 
						|
 | 
						|
function hide()
 | 
						|
  destroyWindow()
 | 
						|
end
 |