Mercurial > wow > reaction
comparison ActionButton.lua @ 305:0211bcdfab70 stable
Merge 1.1 beta 12 to stable
| author | Flick |
|---|---|
| date | Wed, 14 Nov 2012 16:47:27 -0800 |
| parents | e337b39dc491 |
| children |
comparison
equal
deleted
inserted
replaced
| 294:30c9bdaad7a3 | 305:0211bcdfab70 |
|---|---|
| 44 local action = nil | 44 local action = nil |
| 45 if (doVehicle and mcVehicleState == "vehicle") or | 45 if (doVehicle and mcVehicleState == "vehicle") or |
| 46 (doMindControl and mcVehicleState == "mc") then | 46 (doMindControl and mcVehicleState == "mc") then |
| 47 local idx = self:GetAttribute("bar-idx") | 47 local idx = self:GetAttribute("bar-idx") |
| 48 local maxN = (doVehicle and mcVehicleState == "vehicle") and 7 or 12 | 48 local maxN = (doVehicle and mcVehicleState == "vehicle") and 7 or 12 |
| 49 local pageIndex = (doVehicle and mcVehicleState == "vehicle") and 12 or 14 | |
| 49 if idx and idx <= maxN then | 50 if idx and idx <= maxN then |
| 50 action = 120 + idx | 51 action = 12*(pageIndex-1) + idx |
| 51 else | 52 else |
| 52 action = 0 | 53 action = 0 |
| 53 end | 54 end |
| 54 elseif state and settings[state] and settings[state].page then | 55 elseif state and settings[state] and settings[state].page then |
| 55 action = self:GetAttribute("action-"..settings[state].page) | 56 action = self:GetAttribute("action-"..settings[state].page) |
| 144 -- | 145 -- |
| 145 -- private | 146 -- private |
| 146 -- | 147 -- |
| 147 local eventList = { | 148 local eventList = { |
| 148 "PLAYER_ENTERING_WORLD", | 149 "PLAYER_ENTERING_WORLD", |
| 149 "ACTIONBAR_PAGE_CHANGED", | |
| 150 "ACTIONBAR_SLOT_CHANGED", | 150 "ACTIONBAR_SLOT_CHANGED", |
| 151 "UPDATE_BINDINGS", | 151 "UPDATE_BINDINGS", |
| 152 "ACTIONBAR_UPDATE_STATE", | |
| 153 "ACTIONBAR_UPDATE_USABLE", | 152 "ACTIONBAR_UPDATE_USABLE", |
| 154 "ACTIONBAR_UPDATE_COOLDOWN", | |
| 155 "UNIT_INVENTORY_CHANGED", | 153 "UNIT_INVENTORY_CHANGED", |
| 156 "LEARNED_SPELL_IN_TAB", | 154 "LEARNED_SPELL_IN_TAB", |
| 157 "UPDATE_INVENTORY_ALERTS", | 155 "UPDATE_INVENTORY_ALERTS", |
| 158 "PLAYER_TARGET_CHANGED", | 156 "PLAYER_TARGET_CHANGED", |
| 159 "TRADE_SKILL_SHOW", | 157 "TRADE_SKILL_SHOW", |
| 164 "START_AUTOREPEAT_SPELL", | 162 "START_AUTOREPEAT_SPELL", |
| 165 "STOP_AUTOREPEAT_SPELL", | 163 "STOP_AUTOREPEAT_SPELL", |
| 166 "UNIT_ENTERED_VEHICLE", | 164 "UNIT_ENTERED_VEHICLE", |
| 167 "UNIT_EXITED_VEHICLE", | 165 "UNIT_EXITED_VEHICLE", |
| 168 "COMPANION_UPDATE", | 166 "COMPANION_UPDATE", |
| 167 "UPDATE_SHAPESHIFT_FORM", | |
| 168 "SPELL_UPDATE_CHARGES", | |
| 169 "UPDATE_SUMMONPETS_ACTION", | |
| 169 } | 170 } |
| 170 | 171 |
| 171 -- | 172 -- |
| 172 -- Action Button class | 173 -- Action Button class |
| 173 -- | 174 -- |
| 184 spacing = 3, | 185 spacing = 3, |
| 185 buttons = { }, | 186 buttons = { }, |
| 186 }, | 187 }, |
| 187 | 188 |
| 188 barType = L["Action Bar"], | 189 barType = L["Action Bar"], |
| 189 buttonTypeID = buttonTypeID | 190 buttonTypeID = buttonTypeID, |
| 191 eventList = eventList | |
| 190 }, | 192 }, |
| 191 { __index = Super } ) | 193 { __index = Super } ) |
| 192 | 194 |
| 193 ReAction.Button.Action = Action | 195 ReAction.Button.Action = Action |
| 194 ReAction:RegisterBarType(Action, true) | 196 ReAction:RegisterBarType(Action, true) |
| 342 self:UpdateMacroText() | 344 self:UpdateMacroText() |
| 343 self:UpdateCount() | 345 self:UpdateCount() |
| 344 self:UpdateTooltip() | 346 self:UpdateTooltip() |
| 345 self:UpdateCheckedState() | 347 self:UpdateCheckedState() |
| 346 self:UpdateUsable() | 348 self:UpdateUsable() |
| 347 self:UpdateCooldown() | |
| 348 self:UpdateFlash() | 349 self:UpdateFlash() |
| 349 end | 350 end |
| 350 | 351 |
| 351 function Action:UpdateAction() | 352 function Action:UpdateAction() |
| 352 local action = self:GetActionID() | 353 local action = self:GetActionID() |
| 353 if action ~= self.actionID then | 354 if action ~= self.actionID then |
| 354 self.actionID = action | 355 self.actionID = action |
| 356 | |
| 357 -- update checked state and cooldown in C-code | |
| 358 local f = self:GetFrame() | |
| 359 SetActionUIButton(f, action, f.cooldown) | |
| 360 | |
| 355 self:UpdateAll() | 361 self:UpdateAll() |
| 356 end | 362 end |
| 357 end | 363 end |
| 358 | 364 |
| 359 function Action:UpdateShowGrid() | 365 function Action:UpdateShowGrid() |
| 392 if tLeft then | 398 if tLeft then |
| 393 icon:SetTexCoord(tLeft,tRight,tTop,tBottom) | 399 icon:SetTexCoord(tLeft,tRight,tTop,tBottom) |
| 394 end | 400 end |
| 395 icon:Show() | 401 icon:Show() |
| 396 self.rangeTimer = -1 | 402 self.rangeTimer = -1 |
| 397 f:SetNormalTexture("Interface\\Buttons\\UI-Quickslot2") | |
| 398 else | 403 else |
| 399 icon:Hide() | 404 icon:Hide() |
| 400 self.frames.cooldown:Hide() | 405 self.frames.cooldown:Hide() |
| 401 self.rangeTimer = nil | 406 self.rangeTimer = nil |
| 402 f:SetNormalTexture("Interface\\Buttons\\UI-Quickslot") | |
| 403 end | 407 end |
| 404 end | 408 end |
| 405 | 409 |
| 406 function Action:GetIconTexture() | 410 function Action:GetIconTexture() |
| 407 return GetActionTexture(self.actionID) | 411 return GetActionTexture(self.actionID) |
| 419 end | 423 end |
| 420 end | 424 end |
| 421 | 425 |
| 422 function Action:UpdateMacroText() | 426 function Action:UpdateMacroText() |
| 423 local action = self.actionID | 427 local action = self.actionID |
| 424 if not IsConsumableAction(action) and not IsStackableAction(action) then | 428 if not IsConsumableAction(action) and |
| 429 not IsStackableAction(action) and | |
| 430 (IsItemAction(action) or GetActionCount(action) == 0) then | |
| 425 self.frames.name:SetText(GetActionText(action)) | 431 self.frames.name:SetText(GetActionText(action)) |
| 426 else | 432 else |
| 427 self.frames.name:SetText("") | 433 self.frames.name:SetText("") |
| 428 end | 434 end |
| 429 end | 435 end |
| 430 | 436 |
| 431 function Action:UpdateCount() | 437 function Action:UpdateCount() |
| 432 local action = self.actionID | 438 local action = self.actionID |
| 433 if IsConsumableAction(action) or IsStackableAction(action) then | 439 local count = GetActionCount(action) or 0 |
| 434 self.frames.count:SetText(GetActionCount(action)) | 440 if IsConsumableAction(action) or IsStackableAction(action) or (not IsItemAction(action) and count > 0) then |
| 435 else | 441 if count > 9999 then |
| 436 self.frames.count:SetText("") | 442 self.frames.count:SetText("*") |
| 443 else | |
| 444 self.frames.count:SetText(count) | |
| 445 end | |
| 446 else | |
| 447 local charges, maxCharges, chargeStart, chargeDuration = GetActionCharges(action) | |
| 448 charges = tonumber(charges) or 0 | |
| 449 maxCharges = tonumber(maxCharges) or 0 | |
| 450 if maxCharges > 1 then | |
| 451 self.frames.count:SetText(charges) | |
| 452 else | |
| 453 self.frames.count:SetText("") | |
| 454 end | |
| 437 end | 455 end |
| 438 end | 456 end |
| 439 | 457 |
| 440 function Action:UpdateTooltip() | 458 function Action:UpdateTooltip() |
| 441 local f = self:GetFrame() | 459 local f = self:GetFrame() |
| 500 return IsUsableAction(self.actionID) | 518 return IsUsableAction(self.actionID) |
| 501 end | 519 end |
| 502 | 520 |
| 503 function Action:GetInRange() | 521 function Action:GetInRange() |
| 504 return IsActionInRange(self.actionID) == 0 | 522 return IsActionInRange(self.actionID) == 0 |
| 505 end | |
| 506 | |
| 507 function Action:UpdateCooldown() | |
| 508 CooldownFrame_SetTimer(self.frames.cooldown, self:GetCooldown()) | |
| 509 end | 523 end |
| 510 | 524 |
| 511 function Action:GetCooldown() | 525 function Action:GetCooldown() |
| 512 return GetActionCooldown(self.actionID) | 526 return GetActionCooldown(self.actionID) |
| 513 end | 527 end |
| 640 doVehicle = self:GetAttribute("vehicle") | 654 doVehicle = self:GetAttribute("vehicle") |
| 641 control:ChildUpdate() | 655 control:ChildUpdate() |
| 642 ]]) | 656 ]]) |
| 643 | 657 |
| 644 f:SetAttribute("_onstate-mc", _onstate_mc) | 658 f:SetAttribute("_onstate-mc", _onstate_mc) |
| 645 RegisterStateDriver(f, "mc", "[vehicleui] vehicle; [bonusbar:5] mc; none") | 659 RegisterStateDriver(f, "mc", "[vehicleui] vehicle; [overridebar] mc; none") |
| 646 | 660 |
| 647 f:SetAttribute("lockbuttons",config.lockButtons) | 661 f:SetAttribute("lockbuttons",config.lockButtons) |
| 648 f:SetAttribute("lockbuttonscombat",config.lockButtonsCombat) | 662 f:SetAttribute("lockbuttonscombat",config.lockButtonsCombat) |
| 649 f:Execute( | 663 f:Execute( |
| 650 [[ | 664 [[ |
| 720 | 734 |
| 721 function Action:PLAYER_ENTERING_WORLD() | 735 function Action:PLAYER_ENTERING_WORLD() |
| 722 self:UpdateAction() | 736 self:UpdateAction() |
| 723 end | 737 end |
| 724 | 738 |
| 725 function Action:ACTIONBAR_PAGE_CHANGED() | |
| 726 self:UpdateAction() | |
| 727 end | |
| 728 | |
| 729 function Action:UPDATE_BONUS_ACTIONBAR() | |
| 730 self:UpdateAction() | |
| 731 end | |
| 732 | |
| 733 function Action:UPDATE_BINDINGS() | 739 function Action:UPDATE_BINDINGS() |
| 734 self:UpdateHotkey() | 740 self:UpdateHotkey() |
| 735 end | 741 end |
| 736 | 742 |
| 737 function Action:PLAYER_TARGET_CHANGED() | 743 function Action:PLAYER_TARGET_CHANGED() |
| 738 self.rangeTimer = -1 | 744 self.rangeTimer = -1 |
| 739 end | |
| 740 | |
| 741 function Action:ACTIONBAR_UPDATE_STATE() | |
| 742 self:UpdateCheckedState() | |
| 743 end | 745 end |
| 744 | 746 |
| 745 function Action:TRADE_SKILL_SHOW() | 747 function Action:TRADE_SKILL_SHOW() |
| 746 self:UpdateCheckedState() | 748 self:UpdateCheckedState() |
| 747 end | 749 end |
| 763 | 765 |
| 764 function Action:ACTIONBAR_UPDATE_USABLE() | 766 function Action:ACTIONBAR_UPDATE_USABLE() |
| 765 self:UpdateUsable() | 767 self:UpdateUsable() |
| 766 end | 768 end |
| 767 | 769 |
| 768 function Action:ACTIONBAR_UPDATE_COOLDOWN() | 770 function Action:SPELL_UPDATE_CHARGES() |
| 769 self:UpdateCooldown() | 771 self:UpdateCount() |
| 770 end | 772 end |
| 771 | 773 |
| 772 function Action:PLAYER_ENTER_COMBAT() | 774 function Action:PLAYER_ENTER_COMBAT() |
| 773 if IsAttackAction(self.actionID) then | 775 if IsAttackAction(self.actionID) then |
| 774 self:SetFlash(true) | 776 self:SetFlash(true) |
| 791 if not IsAttackAction(self.actionID) then | 793 if not IsAttackAction(self.actionID) then |
| 792 self:SetFlash(false) | 794 self:SetFlash(false) |
| 793 end | 795 end |
| 794 end | 796 end |
| 795 | 797 |
| 798 function Action:UPDATE_SHAPESHIFT_FORM() | |
| 799 self:UpdateIcon() | |
| 800 end | |
| 801 | |
| 796 function Action:UNIT_INVENTORY_CHANGED(unit) | 802 function Action:UNIT_INVENTORY_CHANGED(unit) |
| 797 if unit == "player" then | 803 if unit == "player" then |
| 798 self:UpdateTooltip() | 804 self:UpdateTooltip() |
| 799 end | 805 end |
| 800 end | 806 end |
| 801 | 807 |
| 802 function Action:LEARNED_SPELL_IN_TAB() | 808 function Action:LEARNED_SPELL_IN_TAB() |
| 803 self:UpdateTooltip() | 809 self:UpdateTooltip() |
| 804 end | 810 end |
| 811 | |
| 812 function Action:UPDATE_SUMMONPETS_ACTION() | |
| 813 self:UpdateIcon() | |
| 814 end |
