Added basic table.equals, dontSignal param to combobox calls & spell methods.
This commit is contained in:
parent
a9d4fd5e1e
commit
3dbcb1daee
|
@ -182,3 +182,14 @@ function table.collect(t, func)
|
||||||
return res
|
return res
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function table.equals(t, comp)
|
||||||
|
local equals = false
|
||||||
|
if type(t) == "table" and type(comp) == "table" then
|
||||||
|
for k,v in pairs(t) do
|
||||||
|
if v == comp[k] then
|
||||||
|
equals = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return equals
|
||||||
|
end
|
|
@ -28,25 +28,29 @@ function UIComboBox:getOption(text)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function UIComboBox:setCurrentOption(text)
|
function UIComboBox:setCurrentOption(text, dontSignal)
|
||||||
if not self.options then return end
|
if not self.options then return end
|
||||||
for i,v in ipairs(self.options) do
|
for i,v in ipairs(self.options) do
|
||||||
if v.text == text and self.currentIndex ~= i then
|
if v.text == text and self.currentIndex ~= i then
|
||||||
self.currentIndex = i
|
self.currentIndex = i
|
||||||
self:setText(text)
|
self:setText(text)
|
||||||
signalcall(self.onOptionChange, self, text, v.data)
|
if not dontSignal then
|
||||||
|
signalcall(self.onOptionChange, self, text, v.data)
|
||||||
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function UIComboBox:setCurrentOptionByData(data)
|
function UIComboBox:setCurrentOptionByData(data, dontSignal)
|
||||||
if not self.options then return end
|
if not self.options then return end
|
||||||
for i,v in ipairs(self.options) do
|
for i,v in ipairs(self.options) do
|
||||||
if v.data == data and self.currentIndex ~= i then
|
if v.data == data and self.currentIndex ~= i then
|
||||||
self.currentIndex = i
|
self.currentIndex = i
|
||||||
self:setText(v.text)
|
self:setText(v.text)
|
||||||
signalcall(self.onOptionChange, self, v.text, v.data)
|
if not dontSignal then
|
||||||
|
signalcall(self.onOptionChange, self, v.text, v.data)
|
||||||
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -141,7 +141,7 @@ SpellInfo = {
|
||||||
['Stone Shower'] = {id = 116, words = 'adori mas tera', exhaustion = 2000, premium = false, type = 'Conjure', icon = 'stoneshower', mana = 430, level = 28, soul = 3, group = {[3] = 2000}, vocations = {2, 6}},
|
['Stone Shower'] = {id = 116, words = 'adori mas tera', exhaustion = 2000, premium = false, type = 'Conjure', icon = 'stoneshower', mana = 430, level = 28, soul = 3, group = {[3] = 2000}, vocations = {2, 6}},
|
||||||
['Thunderstorm'] = {id = 117, words = 'adori mas vis', exhaustion = 2000, premium = false, type = 'Conjure', icon = 'thunderstorm', mana = 430, level = 28, soul = 3, group = {[3] = 2000}, vocations = {1, 5}},
|
['Thunderstorm'] = {id = 117, words = 'adori mas vis', exhaustion = 2000, premium = false, type = 'Conjure', icon = 'thunderstorm', mana = 430, level = 28, soul = 3, group = {[3] = 2000}, vocations = {1, 5}},
|
||||||
['Holy Missile'] = {id = 130, words = 'adori san', exhaustion = 2000, premium = false, type = 'Conjure', icon = 'holymissile', mana = 350, level = 27, soul = 3, group = {[3] = 2000}, vocations = {3, 7}}
|
['Holy Missile'] = {id = 130, words = 'adori san', exhaustion = 2000, premium = false, type = 'Conjure', icon = 'holymissile', mana = 350, level = 27, soul = 3, group = {[3] = 2000}, vocations = {3, 7}}
|
||||||
},
|
}--[[,
|
||||||
|
|
||||||
['Sample'] = {
|
['Sample'] = {
|
||||||
['Wind Walk'] = {id = 1, words = 'windwalk', description = 'Run at enormous speed.', exhaustion = 2000, premium = false, type = 'Instant', icon = 1, mana = 50, level = 10, soul = 0, group = {[3] = 2000}, vocations = {1, 2}},
|
['Wind Walk'] = {id = 1, words = 'windwalk', description = 'Run at enormous speed.', exhaustion = 2000, premium = false, type = 'Instant', icon = 1, mana = 50, level = 10, soul = 0, group = {[3] = 2000}, vocations = {1, 2}},
|
||||||
|
@ -149,7 +149,7 @@ SpellInfo = {
|
||||||
['Moonglaives'] = {id = 3, words = 'moonglaives', description = 'Throw moonglaives around you.', exhaustion = 2000, premium = false, type = 'Instant', icon = 3, mana = 90, level = 55, soul = 0, group = {[1] = 2000}, vocations = {3, 7}},
|
['Moonglaives'] = {id = 3, words = 'moonglaives', description = 'Throw moonglaives around you.', exhaustion = 2000, premium = false, type = 'Instant', icon = 3, mana = 90, level = 55, soul = 0, group = {[1] = 2000}, vocations = {3, 7}},
|
||||||
['Critical Strike'] = {id = 4, words = 'criticalstrike', description = 'Land a critical strike.', exhaustion = 2000, premium = false, type = 'Instant', icon = 4, mana = 350, level = 27, soul = 0, group = {[1] = 2000}, vocations = {3, 4, 7, 8}},
|
['Critical Strike'] = {id = 4, words = 'criticalstrike', description = 'Land a critical strike.', exhaustion = 2000, premium = false, type = 'Instant', icon = 4, mana = 350, level = 27, soul = 0, group = {[1] = 2000}, vocations = {3, 4, 7, 8}},
|
||||||
['Firefly'] = {id = 5, words = 'firefly', description = 'Summon a angry firefly', exhaustion = 2000, premium = false, type = 'Instant', icon = 5, mana = 350, level = 27, soul = 0, group = {[1] = 2000}, vocations = {1, 2, 5, 6}}
|
['Firefly'] = {id = 5, words = 'firefly', description = 'Summon a angry firefly', exhaustion = 2000, premium = false, type = 'Instant', icon = 5, mana = 350, level = 27, soul = 0, group = {[1] = 2000}, vocations = {1, 2, 5, 6}}
|
||||||
}
|
}]]
|
||||||
}
|
}
|
||||||
|
|
||||||
-- ['const_name'] = {client_id, TFS_id}
|
-- ['const_name'] = {client_id, TFS_id}
|
||||||
|
@ -402,6 +402,37 @@ function Spells.getSpellProfileByName(spellName)
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function Spells.getSpellsByVocationId(vocId)
|
||||||
|
local spells = {}
|
||||||
|
for profile,data in pairs(SpellInfo) do
|
||||||
|
for k,spell in pairs(data) do
|
||||||
|
if table.contains(spell.vocations, vocId) then
|
||||||
|
table.insert(spells, spell)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return spells
|
||||||
|
end
|
||||||
|
|
||||||
|
function Spells.filterSpellsByGroups(spells, groups)
|
||||||
|
local filtered = {}
|
||||||
|
for v,spell in pairs(spells) do
|
||||||
|
local spellGroups = Spells.getGroupIds(spell)
|
||||||
|
if table.equals(spellGroups, groups) then
|
||||||
|
table.insert(filtered, spell)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return filtered
|
||||||
|
end
|
||||||
|
|
||||||
|
function Spells.getGroupIds(spell)
|
||||||
|
local groups = {}
|
||||||
|
for k,_ in pairs(spell.group) do
|
||||||
|
table.insert(groups, k)
|
||||||
|
end
|
||||||
|
return groups
|
||||||
|
end
|
||||||
|
|
||||||
function Spells.getImageClip(id, profile)
|
function Spells.getImageClip(id, profile)
|
||||||
return (((id-1)%12)*SpelllistSettings[profile].iconSize.width) .. ' '
|
return (((id-1)%12)*SpelllistSettings[profile].iconSize.width) .. ' '
|
||||||
.. ((math.ceil(id/12)-1)*SpelllistSettings[profile].iconSize.height) .. ' '
|
.. ((math.ceil(id/12)-1)*SpelllistSettings[profile].iconSize.height) .. ' '
|
||||||
|
|
Loading…
Reference in New Issue