Mercurial > wow > skeletonkey
comparison SkeletonKey/SkeletonKey.lua @ 50:1aba8a6fd4a9
- fix kb.bindings content and define a generic function for constructing its keystrings
- handle hotkey text for actions placed in multiple slots
-- hotkey.actionbar generates a cache table for use during binding changes
author | Nenue |
---|---|
date | Fri, 19 Aug 2016 01:12:56 -0400 |
parents | 73df13211b22 |
children | 81a7c71c4483 |
comparison
equal
deleted
inserted
replaced
49:9a9d7f2a7c07 | 50:1aba8a6fd4a9 |
---|---|
70 | 70 |
71 -- these are sent to plugin | 71 -- these are sent to plugin |
72 | 72 |
73 | 73 |
74 local db | 74 local db |
75 local bindHeader, currentHeader = '', '' | 75 local _G = _G |
76 local specID, specGlobalID, specName, specDesc, specTexture, characterHeader = 0, 0, 'SPEC_NAME', 'SPEC_DESCRIPTION', 'Interface\\ICONS\\INV_Misc_QuestionMark', 'PLAYER_NAME' | 76 local UnitName, SelectedRealmName, InCombatLockdown, UnitClass = UnitName, SelectedRealmName, InCombatLockdown, UnitClass |
77 local tostring, select, tinsert, pairs = tostring, select, tinsert, pairs | |
78 local concat, wipe = table.concat, table.wipe | |
77 local classHeader, className, classID = '', '', 0 | 79 local classHeader, className, classID = '', '', 0 |
78 local bindsCommitted = true | |
79 local forceButtonUpdate = false | |
80 | 80 |
81 --- Control handles | 81 --- Control handles |
82 local saveButton, restoreButton, clearButton | 82 local saveButton, restoreButton, clearButton |
83 | 83 |
84 --- Returns conflicting assignment and binding profiles for use in displaying confirmations | 84 --- Returns conflicting assignment and binding profiles for use in displaying confirmations |
137 local key = select(i, ...) | 137 local key = select(i, ...) |
138 stack[i] = key:gsub('SHIFT', 's'):gsub('ALT', 'a'):gsub('CTRL', 'c'):gsub('SPACE', 'Sp'):gsub('BUTTON', 'M '):gsub('NUMPAD', '# ') | 138 stack[i] = key:gsub('SHIFT', 's'):gsub('ALT', 'a'):gsub('CTRL', 'c'):gsub('SPACE', 'Sp'):gsub('BUTTON', 'M '):gsub('NUMPAD', '# ') |
139 end | 139 end |
140 | 140 |
141 if #stack >= 1 then | 141 if #stack >= 1 then |
142 return table.concat(stack, ',') | 142 return concat(stack, ',') |
143 else | 143 else |
144 return nil | 144 return nil |
145 end | 145 end |
146 end | 146 end |
147 | 147 |
195 return profile | 195 return profile |
196 end | 196 end |
197 | 197 |
198 kb.ResetProfile = function(profile, prototype) | 198 kb.ResetProfile = function(profile, prototype) |
199 if profile == kb.currentProfile then | 199 if profile == kb.currentProfile then |
200 for i, button in pairs(buttons) do | 200 for i, button in pairs(kb.buttons) do |
201 kb.ReleaseSlot(button) | 201 kb.ReleaseSlot(button) |
202 end | 202 end |
203 end | 203 end |
204 table.wipe(profile) | 204 wipe(profile) |
205 kb.InitProfile(profile, prototype) | 205 kb.InitProfile(profile, prototype) |
206 end | 206 end |
207 | 207 |
208 | 208 |
209 | 209 |
282 kb.ConfirmBindings = function() | 282 kb.ConfirmBindings = function() |
283 kb.ApplyAllBindings() | 283 kb.ApplyAllBindings() |
284 kb.ui() | 284 kb.ui() |
285 end | 285 end |
286 | 286 |
287 | |
288 | |
289 | |
290 --- post ADDON_LOADED | 287 --- post ADDON_LOADED |
291 kb.variables = function() | 288 kb.variables = function() |
292 SkeletonKeyDB = kb.InitProfile(SkeletonKeyDB, {}) | 289 _G.SkeletonKeyDB = kb.InitProfile(_G.SkeletonKeyDB, {}) |
293 kb.db = SkeletonKeyDB | 290 kb.db = _G.SkeletonKeyDB |
294 kb.playerName = UnitName('player') | 291 kb.playerName = UnitName('player') |
295 kb.playerRealm = SelectedRealmName() | 292 kb.playerRealm = SelectedRealmName() |
296 kb.profileName = kb.playerRealm .. '_' .. kb.playerName | 293 kb.profileName = kb.playerRealm .. '_' .. kb.playerName |
297 db = kb.db | 294 db = kb.db |
298 | 295 |
320 kb.modules = kb.modules or {} | 317 kb.modules = kb.modules or {} |
321 tinsert(kb.modules, module) | 318 tinsert(kb.modules, module) |
322 end | 319 end |
323 | 320 |
324 -- Volatiles Access | 321 -- Volatiles Access |
322 kb.FormatActionID = function(actionType, actionID) return tostring(actionType) .. '_' .. tostring(actionID) end | |
325 kb.GetBindings = function() return kb.bindings end | 323 kb.GetBindings = function() return kb.bindings end |
326 kb.GetButtons = function() return kb.buttons end | 324 kb.GetButtons = function() return kb.buttons end |
327 kb.GetCharacterProfile = function () return kb.loadedProfiles[BINDING_TYPE_CHARACTER] end | 325 kb.GetCharacterProfile = function () return kb.loadedProfiles[BINDING_TYPE_CHARACTER] end |
328 kb.GetGlobalProfile = function () return kb.loadedProfiles[BINDING_TYPE_GLOBAL] end | 326 kb.GetGlobalProfile = function () return kb.loadedProfiles[BINDING_TYPE_GLOBAL] end |
329 kb.GetSpecProfile = function () return kb.loadedProfiles[BINDING_TYPE_SPECIALIZATION] end | 327 kb.GetSpecProfile = function () return kb.loadedProfiles[BINDING_TYPE_SPECIALIZATION] end |