view SkeletonKey/Events.lua @ 17:500f9b2bd9ac

- for RegisterAction, use a function table instead of that if/then rats nest - consequently pet bar actions work now - unlocalize bindings data - activate keyslot input manually instead of on mouse over - activate checkbox to keep input mode active - dynamic buttons update in real time for petaction/talent/profession spells
author Nenue
date Sat, 30 Jul 2016 00:08:00 -0400
parents 32d64e42ec9b
children 73df13211b22
line wrap: on
line source
-- KrakTool
-- Events.lua
-- Created: 7/24/2016 11:10 PM
-- %file-revision%
-- Event handlers, and the init block that sets them up; nothing else should be here

local kb, print = LibStub("LibKraken").register(KeyBinder)

kb.init = function()
  kb:RegisterEvent('PLAYER_ENTERING_WORLD')
  kb:RegisterEvent('UPDATE_MACROS')
  kb:RegisterUnitEvent('PLAYER_SPECIALIZATION_CHANGED', 'player', 'pet')
  kb:RegisterUnitEvent('UNIT_PORTRAIT_UPDATE', 'player', 'pet')
  kb:RegisterUnitEvent('SPELLS_CHANGED')
  kb:RegisterUnitEvent('TALENT_UPDATE', 'player', 'pet')

  kb:RegisterEvent('PLAYER_REGEN_DISABLED')
  kb:RegisterEvent('PLAYER_REGEN_ENABLED')
end

kb.event = function(event, ...)
  if kb[event] then
    kb[event](kb, event, ...)
  end
end

kb.PLAYER_REGEN_DISABLED = function()
  kb.ui()
end

kb.UNIT_PORTRAIT_UPDATE = function()
  if KeyBinderCharacterTab then
    SetPortraitTexture(KeyBinderCharacterTab.icon, 'player')
  end
end

kb.PLAYER_REGEN_ENABLED = function()
  kb.ui()
end

kb.PLAYER_SPECIALIZATION_CHANGED =  function()
  kb.UpdateSpecInfo()
  kb.UpdateTalentInfo()
  kb.SelectProfileSet(kb.profileName)
  kb.ApplyAllBindings()
  kb.ui(true)
end
kb.PLAYER_TALENT_UPDATE = function()
  kb.UpdateTalentInfo()
  kb.SelectProfileSet(kb.profileName)
  kb.ApplyAllBindings()
  kb.ui()
end
kb.ACTIONBAR_SLOT_CHANGED = function(self, event, slot)
  kb.HotKeyText(slot)
  return true
end

-- only need to respond to this for pet actions
kb.SPELLS_CHANGED = function(self, event, unit)
  print('|cFFFF0088'.. event..'|r', unit)
  kb.UpdatePetInfo()
end