Mercurial > wow > reaction
comparison classes/MultiCastButton.lua @ 234:0e20f65375d5
Reworked button creation to not use goofy event driven semantics.
author | Flick |
---|---|
date | Tue, 22 Mar 2011 17:05:51 -0700 |
parents | 158c9299185b |
children |
comparison
equal
deleted
inserted
replaced
233:9b9f5fc84d34 | 234:0e20f65375d5 |
---|---|
111 totemIDsBySlot = newtable() | 111 totemIDsBySlot = newtable() |
112 for i = 1, slotsPerPage do | 112 for i = 1, slotsPerPage do |
113 totemIDsBySlot[i] = self:GetAttribute("TOTEM_PRIORITY_"..i) | 113 totemIDsBySlot[i] = self:GetAttribute("TOTEM_PRIORITY_"..i) |
114 end | 114 end |
115 | 115 |
116 -- these are set up in bar:SetupBarHeader() | 116 -- these are set up in bar:SetupBar() |
117 flyoutChildren = flyoutChildren or newtable() | 117 flyoutChildren = flyoutChildren or newtable() |
118 summonSpells = summonSpells or newtable() | 118 summonSpells = summonSpells or newtable() |
119 ]] | 119 ]] |
120 | 120 |
121 local _onstate_multispellpage = -- function(self, stateid, newstate) | 121 local _onstate_multispellpage = -- function(self, stateid, newstate) |
321 { __index = Action } ) | 321 { __index = Action } ) |
322 | 322 |
323 ReAction.Button.MultiCast = MultiCast | 323 ReAction.Button.MultiCast = MultiCast |
324 ReAction:RegisterBarType(MultiCast) | 324 ReAction:RegisterBarType(MultiCast) |
325 | 325 |
326 function MultiCast:New( idx, btnConfig, bar ) | 326 function MultiCast:New( btnConfig, bar, idx ) |
327 local maxIndex = bar.nTotemSlots or 0 | 327 local maxIndex = bar.nTotemSlots or 0 |
328 if bar.summonSlot then | 328 if bar.summonSlot then |
329 maxIndex = maxIndex + 1 | 329 maxIndex = maxIndex + 1 |
330 end | 330 end |
331 if bar.recallSlot then | 331 if bar.recallSlot then |
611 frame.icon:SetTexture(GetSpellTexture(GetSpellInfo(spellID))) | 611 frame.icon:SetTexture(GetSpellTexture(GetSpellInfo(spellID))) |
612 frame.icon:SetTexCoord(0,1,0,1) | 612 frame.icon:SetTexCoord(0,1,0,1) |
613 end | 613 end |
614 end | 614 end |
615 | 615 |
616 function MultiCast.SetupBarHeader( bar ) -- call this as a static method | 616 function MultiCast:SetupBar( bar ) |
617 Super.SetupBar(self,bar) | |
618 | |
617 local slot = 0 | 619 local slot = 0 |
618 local nTotemSlots = 0 | 620 local nTotemSlots = 0 |
619 local summonSlot = nil | 621 local summonSlot = nil |
620 local recallSlot = nil | 622 local recallSlot = nil |
621 | 623 |
755 | 757 |
756 function f:UpdateFlyoutTextures(slot) | 758 function f:UpdateFlyoutTextures(slot) |
757 flyout:UpdateTextures(slot) | 759 flyout:UpdateTextures(slot) |
758 end | 760 end |
759 | 761 |
762 -- re-execute setup when new spells are loaded | |
763 if not f.events_registered then | |
764 f:RegisterEvent("UPDATE_MULTI_CAST_ACTIONBAR") | |
765 f:RegisterEvent("PLAYER_ENTERING_WORLD") | |
766 -- Bar.frame does not use OnEvent | |
767 f:SetScript("OnEvent", | |
768 function() | |
769 if not InCombatLockdown() then | |
770 self:SetupBar(bar) | |
771 end | |
772 end) | |
773 f.events_registered = true | |
774 end | |
775 | |
776 | |
760 f:Execute(_bar_init) | 777 f:Execute(_bar_init) |
761 end | 778 end |
762 | 779 |