--[[ Author: Jarth Filename: Bindings.lua ]] -- ------------------------------------------------------------------------------------------------- -- VARIABLES -- ------------------------------------------------------------------------------------------------- local base = CollectionBars local texts = base.Texts ------------------------------------------------------------------------------------------------- -- FUNCTIONS -- ------------------------------------------------------------------------------------------------- function CBs_ShowSettings() base:ToggleEnableSettings(base.ShowSettings()) end function CBs_Clicked(keyId) base:Debug("CBs_Clicked", keyId) local control = base.WM:GetMouseOverControl() local existingCollectibleId = base.Saved.Bindings[keyId] if control ~= nil and control.CBs then local targetCollectibleId = control:GetId() if existingCollectibleId ~= targetCollectibleId then local existingTargetBinding = base.Global.ReverseBindings[targetCollectibleId] if existingTargetBinding ~= nil then base.Saved.Bindings[existingTargetBinding] = nil base.Global.ReverseBindings[targetCollectibleId] = nil end if existingCollectibleId ~= nil then local existingSourceBinding = base.Global.ReverseBindings[existingCollectibleId] if existingSourceBinding ~= nil then base.Saved.Bindings[existingSourceBinding] = nil base.Global.ReverseBindings[existingCollectibleId] = nil base:SetBindingText(existingCollectibleId) end end base.Saved.Bindings[keyId] = targetCollectibleId base.Global.ReverseBindings[targetCollectibleId] = keyId base:SetBindingText(targetCollectibleId) end elseif existingCollectibleId ~= nil and existingCollectibleId > 0 then if base.AllButtons[existingCollectibleId] then base:Activate(base.AllButtons[existingCollectibleId]) else UseCollectible(existingCollectibleId) end end end function base:SetBindingText(cid) base:Debug("SetBindingText", cid) if base.AllButtons[cid] then base.AllButtons[cid]:SetBindingText(base.Saved.Bindings.Show, cid) end end function base:InitializeBindings() base:Debug("InitializeBindings", base.Saved.Bindings.Number) ZO_CreateStringId(string.format(texts.FormatBindingName, "Settings"), "Settings") for key = 1, base.Saved.Bindings.Number do ZO_CreateStringId(string.format(texts.FormatBindingName, key), string.format(texts.FormatAbbreviationLowDash, key)) local collectibleId = base.Saved.Bindings[key] if collectibleId ~= nil and collectibleId > 0 then base.Global.ReverseBindings[collectibleId] = key end end end