2021-04-09 19:01:18 +00:00

115 lines
3.6 KiB
Lua

setDefaultTab("Tools")
function quiverManager()
quiverPanelName = "quiverManager"
local ui = setupUI([[
Panel
height: 33
margin-top: 2
BotItem
id: BoltsID
anchors.left: parent.left
anchors.top: parent.top
BotItem
id: ArrowsID
anchors.left: prev.right
anchors.verticalCenter: prev.verticalCenter
BotSwitch
id: BoltsSwitch
anchors.top: parent.top
anchors.bottom: prev.verticalCenter
anchors.right: parent.right
text: Sort Bolts
BotSwitch
id: ArrowsSwitch
anchors.top: prev.bottom
anchors.bottom: ArrowsID.bottom
anchors.right: parent.right
text: Sort Arrows
]])
ui:setId(quiverPanelName)
if not storage[quiverPanelName] then
storage[quiverPanelName] = {
arrowsId = 35848,
boltsId = 35849,
bolts = false,
arrows = false
}
end
ui.BoltsSwitch:setOn(storage[quiverPanelName].bolts)
ui.BoltsSwitch.onClick = function(widget)
storage[quiverPanelName].bolts = not storage[quiverPanelName].bolts
widget:setOn(storage[quiverPanelName].bolts)
end
ui.ArrowsSwitch:setOn(storage[quiverPanelName].arrows)
ui.ArrowsSwitch.onClick = function(widget)
storage[quiverPanelName].arrows = not storage[quiverPanelName].arrows
widget:setOn(storage[quiverPanelName].arrows)
end
ui.BoltsID:setItemId(storage[quiverPanelName].boltsId)
ui.BoltsID.onItemChange = function(widget)
storage[quiverPanelName].boltsId = widget:getItemId()
end
ui.ArrowsID:setItemId(storage[quiverPanelName].arrowsId)
ui.ArrowsID.onItemChange = function(widget)
storage[quiverPanelName].arrowsId = widget:getItemId()
end
local arrows = {16143, 763, 761, 7365, 3448, 762, 21470, 7364, 14251, 3447, 3449, 15793, 25757, 774}
local bolts = {6528, 7363, 3450, 16141, 25758, 14252, 3446, 16142}
macro(200, function()
local dArrow
local dBolt
for _, c in pairs(getContainers()) do
if not containerIsFull(c) then
if c:getContainerItem():getId() == storage[quiverPanelName].arrowsId and storage[quiverPanelName].arrows then
dArrow = c
elseif c:getContainerItem():getId() == storage[quiverPanelName].boltsId and storage[quiverPanelName].bolts then
dBolt = c
end
end
end
if dArrow and storage[quiverPanelName].arrows then
for _, c in pairs(getContainers()) do
if c:getName():lower():find("backpack") or c:getName():lower():find("bag") or c:getName():lower():find("chess") then
for _, i in pairs(c:getItems()) do
if table.find(arrows, i:getId()) then
return g_game.move(i, dArrow:getSlotPosition(dArrow:getItemsCount()), i:getCount())
end
end
end
end
end
if dBolt and storage[quiverPanelName].bolts then
for _, c in pairs(getContainers()) do
if c:getName():lower():find("backpack") or c:getName():lower():find("bag") or c:getName():lower():find("chess") then
for _, i in pairs(c:getItems()) do
if table.find(bolts, i:getId()) then
return g_game.move(i, dBolt:getSlotPosition(dBolt:getItemsCount()), i:getCount())
end
end
end
end
end
end)
end
if voc() == 2 or voc() == 12 then
addSeparator()
UI.Label("[[ Quiver Manager ]]")
addSeparator()
quiverManager()
end