100 lines
2.7 KiB
Lua
100 lines
2.7 KiB
Lua
function dumpWidgets(widget, level)
|
|
widget = widget or rootWidget
|
|
level = level or 0
|
|
for i=1,widget:getChildCount() do
|
|
local child = widget:getChildByIndex(i)
|
|
if child:isVisible() then
|
|
local name = child:getId()
|
|
if name:match('widget%d+') == nil then
|
|
print(string.rep(' ', level) .. name)
|
|
end
|
|
if child:getId() ~= 'terminalBuffer' then
|
|
dumpWidgets(child, level+1)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function drawDebugBoxes(enable)
|
|
if enable == nil then enable = true end
|
|
g_ui.setDebugBoxesDrawing(enable)
|
|
end
|
|
|
|
function hideMap()
|
|
local map = rootWidget:recursiveGetChildById('gameMapPanel')
|
|
if map then map:hide() end
|
|
end
|
|
|
|
function showMap()
|
|
local map = rootWidget:recursiveGetChildById('gameMapPanel')
|
|
if map then map:show() end
|
|
end
|
|
|
|
function debugContainersItems()
|
|
function UIItem:onHoverChange(hovered)
|
|
if hovered then
|
|
local item = self:getItem()
|
|
if item then
|
|
local text = "id: " ..item:getId() ..
|
|
"\n stackable: " ..tostring(item:isStackable()) ..
|
|
"\n marketable: " ..tostring(item:isMarketable()) ..
|
|
"\n vocation: "..(item:getMarketData() and item:getMarketData().restrictVocation or 'none') ..
|
|
"\n cloth slot: " ..item:getClothSlot()
|
|
g_tooltip.display(text)
|
|
end
|
|
else
|
|
g_tooltip.hide()
|
|
end
|
|
end
|
|
end
|
|
|
|
function debugPosition(enable)
|
|
if enable == nil then enable = true end
|
|
local label = rootWidget:getChildById('debugPositionLabel')
|
|
if not label then
|
|
label = g_ui.createWidget('GameLabel', rootWidget)
|
|
label:setColor('pink')
|
|
label:setFont('terminus-14px-bold')
|
|
label:setId('debugPositionLabel')
|
|
label:setPosition({x= 10, y = 40 })
|
|
label:setPhantom(true)
|
|
label:setTextAutoResize(true)
|
|
end
|
|
if enable then
|
|
label.event = cycleEvent(function()
|
|
local player = g_game.getLocalPlayer()
|
|
if player then
|
|
local pos = g_game.getLocalPlayer():getPosition()
|
|
label:show()
|
|
label:setText('x: ' .. pos.x .. '\ny: ' .. pos.y .. '\nz: ' .. pos.z)
|
|
else
|
|
label:hide()
|
|
end
|
|
end, 100)
|
|
else
|
|
removeEvent(label.event)
|
|
label.event = nil
|
|
label:hide()
|
|
end
|
|
end
|
|
|
|
function autoReloadModule(name)
|
|
local function reloadEvent()
|
|
reloadModule(name)
|
|
scheduleEvent(reloadEvent, 1000)
|
|
end
|
|
reloadEvent()
|
|
end
|
|
|
|
function createDebugUIItem(id)
|
|
local uiitem = g_ui.createWidget('Item', rootWidget)
|
|
uiitem:setPosition({x= 200, y = 200 })
|
|
uiitem:setItemId(id)
|
|
uiitem:show()
|
|
end
|
|
|
|
function debugPings()
|
|
g_game.setPingDelay(0)
|
|
connect(g_game, { onPingBack = function(ping) print(g_game.getWorldName() .. ' => ' .. ping .. ' ms') end })
|
|
end
|