Mercurial > wow > skeletonkey
diff SkeletonKey.lua @ 74:9824d524a661
- binding slot mixin:
- store key binding definitions under their slot's data table
- apply action button attributes when a slot is assigned
- obtain correct macro body text when a macro is slotted
- fix algorithm for resolving renamed macro indices
- move spell detail lookup code out of mixin script
- event chains:
- initialize addon from PLAYER_LOGIN
- reload keybinds from PLAYER_SPECIALIZATION_CHANGED, after spec profile is resolved
- refresh interface content from SPELLS_CHANGED
- hotkey text:
- restore communication and detection of key binding updates and reflect them accordingly
- properly respond to dynamic bindings that result from talent updates
author | Nenue |
---|---|
date | Sat, 14 Jan 2017 02:29:33 -0500 |
parents | c48913c5924c |
children | 6623b7f2c1ca |
line wrap: on
line diff
--- a/SkeletonKey.lua Sat Jan 07 12:52:05 2017 -0500 +++ b/SkeletonKey.lua Sat Jan 14 02:29:33 2017 -0500 @@ -151,8 +151,8 @@ for i = 1, select('#', ...) do local key = select(i, ...) if type(key) == 'string' then - stack[i] = key:gsub('SHIFT', 's'):gsub('ALT', 'a'):gsub('CTRL', 'c'):gsub('SPACE', 'Sp'):gsub('BUTTON', 'M '):gsub('NUMPAD', '# ') - end + stack[i] = key:gsub('SHIFT', 's'):gsub('ALT', 'a'):gsub('CTRL', 'c'):gsub('SPACE', 'Sp'):gsub('BUTTON', 'M '):gsub('NUMPAD', '# ') + end end if #stack >= 1 then @@ -243,8 +243,8 @@ local defaultMode --- General info classHeader, className, classID = UnitClass('player') - print('|cFF00FF00profile:|r', name) - print('|cFF00FF00class:|r', UnitClass('player')) + --kb:print('|cFF00FF00profile:|r', name) + --kb:print('|cFF00FF00class:|r', UnitClass('player')) defaultMode = BINDING_TYPE_GLOBAL if db[name] then @@ -287,9 +287,10 @@ setmetatable(kb.loadedProfiles[BINDING_TYPE_CHARACTER], {__tostring =function() return kb.configHeaders[BINDING_TYPE_CHARACTER] end}) setmetatable(kb.loadedProfiles[BINDING_TYPE_SPECIALIZATION], {__tostring =function() return kb.configHeaders[BINDING_TYPE_SPECIALIZATION] end}) - print('|cFF00FF00bindMode:|r', db.bindMode) kb.currentProfile = kb.loadedProfiles[db.bindMode] kb.currentHeader = kb.configHeaders[db.bindMode] + + print('|cFF88FF00SelectProfile()|r', kb.profileName, classHeader, kb.specInfo.name) end @@ -317,9 +318,10 @@ print('|cFF0088FF'..self:GetName()..':OnLoad()') self.CloseButton:SetScript('OnClick', CloseButton_OnClick) - self:RegisterEvent('PLAYER_LOGIN') self:RegisterEvent('PLAYER_ENTERING_WORLD') self:RegisterEvent('ADDON_LOADED') + self:RegisterEvent('PLAYER_LOGIN') + self:RegisterUnitEvent('PLAYER_SPECIALIZATION_CHANGED', 'player') self:EnableKeyboard(false) self.zoomScale = self:GetScale() @@ -330,13 +332,15 @@ end function SkeletonKeyMixin:OnEvent(event, arg) - if event == 'ADDON_LOADED' then + print('|cFFFF0088'.. event..'|r', unit) + if event == 'PLAYER_LOGIN' then print('|cFF00FFFF'..event ..'|r', arg or '', IsLoggedIn()) - if IsLoggedIn() and not self.initialized then + if not self.initialized then self:Setup() self.initialized = true - self:Update() + kb.ApplyAllBindings() + self:Update(true) end @@ -351,6 +355,11 @@ end end +function SkeletonKeyMixin:RefreshSpells() + + kb.UpdateTalentInfo() + kb.UpdatePetInfo() +end --- post ADDON_LOADED function SkeletonKeyMixin:Setup () @@ -365,10 +374,10 @@ kb.UpdateSpecInfo() kb.UpdateTalentInfo() kb.SelectProfileSet(kb.profileName) + self:SetShown(kb.db.showUI) -- todo: redo import checking kb.UpdateSystemBinds() - kb.ApplyAllBindings() if not InCombatLockdown() then kb.CreateHooks() @@ -380,17 +389,14 @@ SLASH_SKB2 = "/skeletonkey" SlashCmdList.SKB = kb.Command - self:SetShown(kb.db.showUI) - self:Update(true) self:RegisterEvent('UPDATE_MACROS') - self:RegisterEvent('UPDATE_BINDINGS') + --self:RegisterEvent('UPDATE_BINDINGS') self:RegisterUnitEvent('UNIT_PORTRAIT_UPDATE', 'player', 'pet') - self:RegisterUnitEvent('PLAYER_SPECIALIZATION_CHANGED', 'player', 'pet') - self:RegisterUnitEvent('SPELLS_CHANGED') - self:RegisterUnitEvent('TALENT_UPDATE', 'player', 'pet') self:RegisterEvent('PLAYER_REGEN_DISABLED') self:RegisterEvent('PLAYER_REGEN_ENABLED') + self:RegisterEvent('SPELLS_CHANGED') + self:RegisterEvent('PLAYER_TALENT_UPDATE') self:RegisterForDrag('LeftButton') self:SetMovable(true)