├── README.md
└── Interface
├── AddOns
├── NDui
│ ├── Libs
│ │ ├── oUF
│ │ │ ├── init.lua
│ │ │ ├── finalize.lua
│ │ │ ├── units.lua
│ │ │ ├── factory.lua
│ │ │ ├── LICENSE
│ │ │ ├── oUF.xml
│ │ │ ├── private.lua
│ │ │ └── Elements
│ │ │ │ ├── restingindicator.lua
│ │ │ │ ├── phaseindicator.lua
│ │ │ │ ├── combatindicator.lua
│ │ │ │ ├── assistantindicator.lua
│ │ │ │ ├── leaderindicator.lua
│ │ │ │ ├── raidtargetindicator.lua
│ │ │ │ ├── resurrectindicator.lua
│ │ │ │ └── raidroleindicator.lua
│ │ ├── LibHealComm-4.0
│ │ │ └── LibHealComm-4.0.xml
│ │ ├── Libs.xml
│ │ ├── cargBags
│ │ │ ├── mixins-add
│ │ │ │ ├── sorts.lua
│ │ │ │ ├── itemkeys
│ │ │ │ │ ├── basic.lua
│ │ │ │ │ ├── tooltip.lua
│ │ │ │ │ └── equipSets.lua
│ │ │ │ └── layouts.lua
│ │ │ ├── base-add
│ │ │ │ └── bags.sieve.lua
│ │ │ ├── mixins
│ │ │ │ ├── locale.lua
│ │ │ │ ├── parseBags.lua
│ │ │ │ └── api-common.lua
│ │ │ └── cargBags.xml
│ │ └── LibStub
│ │ │ └── LibStub.lua
│ ├── Media
│ │ ├── bgTex.blp
│ │ ├── flatTex.blp
│ │ ├── glowTex.blp
│ │ ├── gradTex.blp
│ │ ├── normTex.blp
│ │ ├── Hutu
│ │ │ ├── arrow.tga
│ │ │ ├── close.tga
│ │ │ ├── Afdian.blp
│ │ │ ├── Patreon.blp
│ │ │ ├── Menu
│ │ │ │ ├── LFG.blp
│ │ │ │ ├── bags.blp
│ │ │ │ ├── guild.blp
│ │ │ │ ├── help.blp
│ │ │ │ ├── store.blp
│ │ │ │ ├── player.blp
│ │ │ │ ├── quests.blp
│ │ │ │ ├── talents.blp
│ │ │ │ ├── spellbook.blp
│ │ │ │ └── collections.blp
│ │ │ ├── RoleIcons.blp
│ │ │ ├── logoSmall.tga
│ │ │ └── logoClassic.tga
│ │ ├── SortIcon.blp
│ │ ├── TargetArrow.blp
│ │ └── Actionbar
│ │ │ ├── flash.blp
│ │ │ ├── gloss.blp
│ │ │ └── pushed.blp
│ ├── Modules
│ │ ├── Bags
│ │ │ └── Bags.xml
│ │ ├── Maps
│ │ │ └── Maps.xml
│ │ ├── Tooltip
│ │ │ ├── Tooltip.xml
│ │ │ ├── HoverTips.lua
│ │ │ ├── Targeted.lua
│ │ │ └── TooltipIcons.lua
│ │ ├── Chat
│ │ │ └── Chat.xml
│ │ ├── Skins
│ │ │ ├── Blizzard
│ │ │ │ ├── FrameXML
│ │ │ │ │ ├── TaxiFrame.lua
│ │ │ │ │ ├── ProductChoiceFrame.lua
│ │ │ │ │ ├── TutorialFrame.lua
│ │ │ │ │ ├── AudioOptionsFrame.lua
│ │ │ │ │ ├── MainMenuBarMicroButtons.lua
│ │ │ │ │ ├── ReadyCheck.lua
│ │ │ │ │ ├── RaidFrame.lua
│ │ │ │ │ ├── ScriptErrorsFrame.lua
│ │ │ │ │ ├── GuildRegistrarFrame.lua
│ │ │ │ │ ├── PetitionFrame.lua
│ │ │ │ │ ├── TabardFrame.lua
│ │ │ │ │ ├── ModelPreviewFrame.lua
│ │ │ │ │ ├── ColorPickerFrame.lua
│ │ │ │ │ ├── GameMenuFrame.lua
│ │ │ │ │ ├── HelpFrame.lua
│ │ │ │ │ ├── MovieFrame.lua
│ │ │ │ │ ├── WorldMapFrame.lua
│ │ │ │ │ ├── DressUpFrames.lua
│ │ │ │ │ ├── ItemTextFrame.lua
│ │ │ │ │ ├── PetStable.lua
│ │ │ │ │ ├── AddonList.lua
│ │ │ │ │ ├── ChatBubbles.lua
│ │ │ │ │ ├── BattlefieldFrame.lua
│ │ │ │ │ ├── FrameXML.xml
│ │ │ │ │ ├── TradeFrame.lua
│ │ │ │ │ ├── NavigationBar.lua
│ │ │ │ │ ├── SpellBookFrame.lua
│ │ │ │ │ ├── GossipFrame.lua
│ │ │ │ │ ├── ChatFrame.lua
│ │ │ │ │ ├── UIDropDownMenu.lua
│ │ │ │ │ ├── InterfaceOptionsFrame.lua
│ │ │ │ │ └── CompactRaidFrames.lua
│ │ │ │ ├── Blizzard_FlightMap.lua
│ │ │ │ ├── Blizzard_Tutorial.lua
│ │ │ │ ├── Blizzard_BattlefieldMap.lua
│ │ │ │ ├── Blizzard_RaidUI.lua
│ │ │ │ ├── Blizzard_TalentUI.lua
│ │ │ │ ├── Blizzard.xml
│ │ │ │ ├── Blizzard_TrainerUI.lua
│ │ │ │ ├── Blizzard_DebugTools.lua
│ │ │ │ ├── Blizzard_GMChatUI.lua
│ │ │ │ ├── Blizzard_LookingForGroupUI.lua
│ │ │ │ ├── Blizzard_TimeManager.lua
│ │ │ │ ├── Blizzard_ItemSocketingUI.lua
│ │ │ │ ├── Blizzard_EventTrace.lua
│ │ │ │ ├── Blizzard_InspectUI.lua
│ │ │ │ └── Blizzard_BindingUI.lua
│ │ │ ├── AddOns
│ │ │ │ ├── TMW.lua
│ │ │ │ └── WeakAuras.lua
│ │ │ └── Skins.xml
│ │ ├── UFs
│ │ │ └── UFs.xml
│ │ ├── Auras
│ │ │ ├── Lumos
│ │ │ │ ├── Lumos.xml
│ │ │ │ └── Priest.lua
│ │ │ └── Totems.lua
│ │ ├── Infobar
│ │ │ ├── Infobar.xml
│ │ │ ├── Spec.lua
│ │ │ └── Latency.lua
│ │ ├── Modules.xml
│ │ ├── Misc
│ │ │ ├── Misc.xml
│ │ │ ├── AlertFrames.lua
│ │ │ └── Focuser.lua
│ │ └── ActionBar
│ │ │ ├── ActionBar.xml
│ │ │ ├── Bars
│ │ │ ├── Bar2.lua
│ │ │ ├── Petbar.lua
│ │ │ ├── Bar5.lua
│ │ │ ├── Bar3.lua
│ │ │ ├── Leave_vehicle.lua
│ │ │ ├── Bar4.lua
│ │ │ ├── Stancebar.lua
│ │ │ └── Hide_blizzart.lua
│ │ │ └── ButtonRange.lua
│ ├── Plugins
│ │ └── Plugins.xml
│ ├── Locales
│ │ └── Locales.xml
│ ├── Config
│ │ ├── Config.xml
│ │ ├── RaidFrameAuras
│ │ │ ├── TBC
│ │ │ │ ├── MagtheridonsLair.lua
│ │ │ │ ├── GruulsLair.lua
│ │ │ │ ├── ZulAman.lua
│ │ │ │ ├── HyjalSummit.lua
│ │ │ │ ├── Party-TBC.lua
│ │ │ │ ├── SunwellPlateau.lua
│ │ │ │ ├── SerpentshrineCavern.lua
│ │ │ │ ├── TempestKeep.lua
│ │ │ │ └── Karazhan.lua
│ │ │ ├── RaidFrameAuras.xml
│ │ │ └── ClassSpells.lua
│ │ ├── AuraWatchList
│ │ │ ├── AuraWatchList.xml
│ │ │ ├── Paladin.lua
│ │ │ ├── Shaman.lua
│ │ │ ├── Mage.lua
│ │ │ ├── Rogue.lua
│ │ │ ├── Warrior.lua
│ │ │ ├── Warlock.lua
│ │ │ ├── Priest.lua
│ │ │ ├── Druid.lua
│ │ │ └── Hunter.lua
│ │ └── Nameplate.lua
│ ├── NDui.toc
│ ├── Core
│ │ ├── Core.xml
│ │ ├── Changelog.lua
│ │ └── Smooth.lua
│ ├── NDui_TBC.toc
│ └── License.txt
└── !BaudErrorFrame
│ └── !BaudErrorFrame.toc
├── Tooltips
├── ChatBubble.blp
└── ChatBubbleVertical.blp
└── TargetingFrame
└── UI-TargetingFrame-BarFill.tga
/README.md:
--------------------------------------------------------------------------------
1 | # The project has been moved to https://github.com/siweia/NDui, under different branches.
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/oUF/init.lua:
--------------------------------------------------------------------------------
1 | local parent, ns = ...
2 | ns.oUF = {}
3 | ns.oUF.Private = {}
--------------------------------------------------------------------------------
/Interface/Tooltips/ChatBubble.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/Tooltips/ChatBubble.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/bgTex.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/bgTex.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/flatTex.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/flatTex.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/glowTex.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/glowTex.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/gradTex.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/gradTex.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/normTex.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/normTex.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/oUF/finalize.lua:
--------------------------------------------------------------------------------
1 | local parent, ns = ...
2 |
3 | -- It's named Private for a reason!
4 | ns.oUF.Private = nil
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/arrow.tga:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/arrow.tga
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/close.tga:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/close.tga
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/SortIcon.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/SortIcon.blp
--------------------------------------------------------------------------------
/Interface/Tooltips/ChatBubbleVertical.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/Tooltips/ChatBubbleVertical.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/Afdian.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/Afdian.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/Patreon.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/Patreon.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/TargetArrow.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/TargetArrow.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Actionbar/flash.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Actionbar/flash.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Actionbar/gloss.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Actionbar/gloss.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/Menu/LFG.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/Menu/LFG.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/Menu/bags.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/Menu/bags.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/Menu/guild.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/Menu/guild.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/Menu/help.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/Menu/help.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/Menu/store.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/Menu/store.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/RoleIcons.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/RoleIcons.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/logoSmall.tga:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/logoSmall.tga
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Actionbar/pushed.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Actionbar/pushed.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/Menu/player.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/Menu/player.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/Menu/quests.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/Menu/quests.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/Menu/talents.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/Menu/talents.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/logoClassic.tga:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/logoClassic.tga
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/Menu/spellbook.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/Menu/spellbook.blp
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Media/Hutu/Menu/collections.blp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/AddOns/NDui/Media/Hutu/Menu/collections.blp
--------------------------------------------------------------------------------
/Interface/TargetingFrame/UI-TargetingFrame-BarFill.tga:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siweia/NDuiClassic/HEAD/Interface/TargetingFrame/UI-TargetingFrame-BarFill.tga
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Bags/Bags.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/LibHealComm-4.0/LibHealComm-4.0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Maps/Maps.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Plugins/Plugins.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Locales/Locales.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Tooltip/Tooltip.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Chat/Chat.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/Config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/TaxiFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | TaxiFramePortrait = TaxiPortrait
6 | TaxiFrameCloseButton = TaxiCloseButton
7 | B.ReskinPortraitFrame(TaxiFrame, 17, -8, -45, 82)
8 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/UFs/UFs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/Blizzard_FlightMap.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | C.themes["Blizzard_FlightMap"] = function()
5 | B.ReskinPortraitFrame(FlightMapFrame)
6 | FlightMapFrameBg:Hide()
7 | FlightMapFrame.ScrollContainer.Child.TiledBackground:Hide()
8 | end
--------------------------------------------------------------------------------
/Interface/AddOns/!BaudErrorFrame/!BaudErrorFrame.toc:
--------------------------------------------------------------------------------
1 | ## Interface: 20504
2 | ## Title: |cff0080ffBaudErrorFrame|r
3 | ## Title-zhCN: |cff0080ffBaudErrorFrame|r 报错收集
4 | ## Title-zhTW: |cff0080ffBaudErrorFrame|r 報錯收集
5 | ## Notes: Improved error reporting
6 | ## Author: Baudzilla, wolftankk, Siweia
7 | ## Version: NDui Mod
8 | ## SavedVariables: BaudErrorFrameConfig
9 |
10 | BaudErrorFrame.xml
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/NDui.toc:
--------------------------------------------------------------------------------
1 | ## Interface: 20504
2 | ## Title: |cff0080ffNDui|r |cff00ff00Classic|r
3 | ## X-Credits: Elv, Freebaser, Haleth, Haste, lightspark, Loshine, Neavo, p3lim, Paopao001, Qulight, Ray, Rubgrsch, Tuller, zork.
4 | ## Author: Siweia
5 | ## Notes: Empty toc for Curseforge
6 | ## Version: 2.11.0
7 | ## X-Support: BC Classic
8 | ## X-Website: https://github.com/siweia/NDui/tree/TBC
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/RaidFrameAuras/TBC/MagtheridonsLair.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | local TIER = 2
6 | local INSTANCE = 544 -- 玛瑟里顿的巢穴
7 |
8 | -- 玛瑟里顿
9 | module:RegisterDebuff(TIER, INSTANCE, 0, 44032) -- 心灵疲倦
10 | module:RegisterDebuff(TIER, INSTANCE, 0, 30530) -- 恐惧
11 | module:RegisterDebuff(TIER, INSTANCE, 0, 38927) -- 魔能疼痛
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Auras/Lumos/Lumos.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Infobar/Infobar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/AuraWatchList/AuraWatchList.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Core/Core.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/Libs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/Blizzard_Tutorial.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | C.themes["Blizzard_Tutorial"] = function()
5 | local tutorialFrame = NPE_TutorialKeyboardMouseFrame_Frame
6 | tutorialFrame.NineSlice:Hide()
7 | B.SetBD(tutorialFrame)
8 | tutorialFrame.TitleBg:Hide()
9 | tutorialFrame.portrait:SetAlpha(0)
10 | B.ReskinClose(tutorialFrame.CloseButton)
11 | NPE_TutorialKeyString:SetTextColor(1, 1, 1)
12 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/ProductChoiceFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | local ProductChoiceFrame = ProductChoiceFrame
6 |
7 | B.ReskinPortraitFrame(ProductChoiceFrame)
8 | B.Reskin(ProductChoiceFrame.Inset.ClaimButton)
9 | B.ReskinArrow(ProductChoiceFrame.Inset.PrevPageButton, "left")
10 | B.ReskinArrow(ProductChoiceFrame.Inset.NextPageButton, "right")
11 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/TutorialFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | B.SetBD(TutorialFrame)
6 |
7 | TutorialFrame:DisableDrawLayer("BORDER")
8 | B.Reskin(TutorialFrameOkayButton, true)
9 | TutorialFrameOkayButton:ClearAllPoints()
10 | TutorialFrameOkayButton:SetPoint("BOTTOMLEFT", TutorialFrameNextButton, "BOTTOMRIGHT", 10, 0)
11 | TutorialFrameOkayButton.__bg:SetBackdropColor(0, 0, 0, .25)
12 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/AudioOptionsFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | AudioOptionsFrameHeader:SetAlpha(0)
6 | AudioOptionsFrameHeader:ClearAllPoints()
7 | AudioOptionsFrameHeader:SetPoint("TOP", AudioOptionsFrame, 0, 0)
8 | B.StripTextures(AudioOptionsFrame)
9 | B.SetBD(AudioOptionsFrame)
10 | B.Reskin(AudioOptionsFrameOkay)
11 | B.Reskin(AudioOptionsFrameCancel)
12 | B.Reskin(AudioOptionsFrameDefaults)
13 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/MainMenuBarMicroButtons.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | local microButtons = {
6 | CharacterMicroButtonAlert,
7 | TalentMicroButtonAlert,
8 | CollectionsMicroButtonAlert,
9 | LFDMicroButtonAlert,
10 | EJMicroButtonAlert,
11 | StoreMicroButtonAlert,
12 | ZoneAbilityButtonAlert,
13 | }
14 |
15 | for _, alert in pairs(microButtons) do
16 | B.ReskinClose(alert.CloseButton)
17 | end
18 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Misc/Misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/Blizzard_BattlefieldMap.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | C.themes["Blizzard_BattlefieldMap"] = function()
5 | local BattlefieldMapFrame = _G.BattlefieldMapFrame
6 | local BorderFrame = BattlefieldMapFrame.BorderFrame
7 |
8 | B.StripTextures(BorderFrame)
9 | B.SetBD(BattlefieldMapFrame, nil, -1, 1, -1, 2)
10 | B.ReskinClose(BorderFrame.CloseButton)
11 |
12 | B.StripTextures(OpacityFrame)
13 | B.SetBD(OpacityFrame)
14 | B.ReskinSlider(OpacityFrameSlider, true)
15 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/ReadyCheck.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | B.SetBD(ReadyCheckFrame)
6 | ReadyCheckPortrait:SetAlpha(0)
7 | select(2, ReadyCheckListenerFrame:GetRegions()):Hide()
8 |
9 | ReadyCheckFrame:HookScript("OnShow", function(self)
10 | if self.initiator and UnitIsUnit("player", self.initiator) then
11 | self:Hide()
12 | end
13 | end)
14 |
15 | B.Reskin(ReadyCheckFrameYesButton)
16 | B.Reskin(ReadyCheckFrameNoButton)
17 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/AddOns/TMW.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local S = B:GetModule("Skins")
4 |
5 | local function ReskinTMW()
6 | if not C.db["Skins"]["TMW"] then return end
7 |
8 | TMW.Classes.Icon:PostHookMethod("OnNewInstance", function(self)
9 | if not self.bg then
10 | self.bg = B.SetBD(self)
11 | end
12 | end)
13 |
14 | TMW.Classes.IconModule_Texture:PostHookMethod("OnNewInstance", function(self)
15 | self.texture:SetTexCoord(unpack(DB.TexCoord))
16 | end)
17 | end
18 |
19 | S:RegisterSkin("TellMeWhen", ReskinTMW)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/RaidFrameAuras/RaidFrameAuras.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/Nameplate.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local _, C = unpack(ns)
3 |
4 | -- 法术白名单
5 | C.WhiteList = {
6 | -- Buffs
7 | [642] = true, -- 圣盾术
8 | [1022] = true, -- 保护之手
9 | [23920] = true, -- 法术反射
10 | [45438] = true, -- 寒冰屏障
11 | -- Debuffs
12 | [2094] = true, -- 致盲
13 | }
14 |
15 | -- 法术黑名单
16 | C.BlackList = {
17 | [15407] = true, -- 精神鞭笞
18 | }
19 |
20 | -- 特殊单位的染色列表
21 | C.CustomUnits = {
22 | [120651] = true, -- 爆炸物
23 | }
24 |
25 | -- 显示能量值的单位
26 | C.ShowPowerList = {
27 | [155432] = true, -- 魔力使者
28 | }
29 |
30 | -- 重要读条高亮
31 | C.MajorSpells = {
32 | --[27072] = true, -- 寒冰箭
33 | }
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Skins.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/NDui_TBC.toc:
--------------------------------------------------------------------------------
1 | ## Interface: 20504
2 | ## Title: |cff0080ffNDui|r |cff00ff00Classic|r
3 | ## X-Credits: Elv, Freebaser, Haleth, Haste, lightspark, Loshine, Neavo, p3lim, Paopao001, Qulight, Ray, Rubgrsch, Tuller, zork.
4 | ## Author: Siweia
5 | ## Notes: More than a UI.
6 | ## Version: 2.11.0
7 | ## X-Support: BC Classic
8 | ## X-Website: https://github.com/siweia/NDui/tree/TBC
9 | ## SavedVariables: NDuiADB, NDuiPDB
10 | ## SavedVariablesPerCharacter: NDuiDB
11 |
12 | Init.lua
13 | Locales\Locales.xml
14 | Core\Core.xml
15 | Config\Config.xml
16 | Libs\Libs.xml
17 | Modules\Modules.xml
18 | Plugins\Plugins.xml
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/RaidFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | B.StripTextures(RaidInfoFrame)
6 | B.SetBD(RaidInfoFrame)
7 | B.ReskinCheck(RaidFrameAllAssistCheckButton)
8 |
9 | RaidInfoFrame:SetPoint("TOPLEFT", RaidFrame, "TOPRIGHT", 1, -28)
10 |
11 | B.Reskin(RaidFrameRaidInfoButton)
12 | B.Reskin(RaidFrameConvertToRaidButton)
13 | B.ReskinClose(RaidInfoCloseButton)
14 | B.ReskinScroll(RaidInfoScrollFrameScrollBar)
15 | B.ReskinClose(RaidParentFrameCloseButton)
16 |
17 | B.ReskinPortraitFrame(RaidParentFrame)
18 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/ScriptErrorsFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | ScriptErrorsFrame:SetScale(UIParent:GetScale())
6 | B.StripTextures(ScriptErrorsFrame)
7 | B.SetBD(ScriptErrorsFrame)
8 |
9 | B.Reskin(select(4, ScriptErrorsFrame:GetChildren()))
10 | B.ReskinArrow(select(5, ScriptErrorsFrame:GetChildren()), "left")
11 | B.ReskinArrow(select(6, ScriptErrorsFrame:GetChildren()), "right")
12 | B.Reskin(select(7, ScriptErrorsFrame:GetChildren()))
13 | B.ReskinScroll(ScriptErrorsFrameScrollBar)
14 | B.ReskinClose(ScriptErrorsFrameClose)
15 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/GuildRegistrarFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | GuildAvailableServicesText:SetTextColor(1, 1, 1)
6 | GuildAvailableServicesText:SetShadowColor(0, 0, 0)
7 |
8 | B.ReskinPortraitFrame(GuildRegistrarFrame, 15, -15, -30, 65)
9 | B.StripTextures(GuildRegistrarGreetingFrame)
10 | GuildRegistrarFrameEditBox:SetHeight(20)
11 | GuildRegistrarFrameEditBox:DisableDrawLayer("BACKGROUND")
12 | B.ReskinEditBox(GuildRegistrarFrameEditBox)
13 | B.Reskin(GuildRegistrarFrameGoodbyeButton)
14 | B.Reskin(GuildRegistrarFramePurchaseButton)
15 | B.Reskin(GuildRegistrarFrameCancelButton)
16 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/PetitionFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | B.ReskinPortraitFrame(PetitionFrame, 15, -15, -30, 65)
6 | B.Reskin(PetitionFrameSignButton)
7 | B.Reskin(PetitionFrameRequestButton)
8 | B.Reskin(PetitionFrameRenameButton)
9 | B.Reskin(PetitionFrameCancelButton)
10 |
11 | PetitionFrameCharterTitle:SetTextColor(1, 1, 1)
12 | PetitionFrameCharterTitle:SetShadowColor(0, 0, 0)
13 | PetitionFrameMasterTitle:SetTextColor(1, 1, 1)
14 | PetitionFrameMasterTitle:SetShadowColor(0, 0, 0)
15 | PetitionFrameMemberTitle:SetTextColor(1, 1, 1)
16 | PetitionFrameMemberTitle:SetShadowColor(0, 0, 0)
17 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/TabardFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | B.ReskinPortraitFrame(TabardFrame, 15, -15, -35, 73)
6 | B.StripTextures(TabardFrameCostFrame)
7 | B.CreateBDFrame(TabardFrameCostFrame, .25)
8 | B.Reskin(TabardFrameAcceptButton)
9 | B.Reskin(TabardFrameCancelButton)
10 | B.ReskinRotationButtons("TabardCharacterModel")
11 |
12 | TabardFrameCustomizationBorder:Hide()
13 | for i = 1, 5 do
14 | B.StripTextures(_G["TabardFrameCustomization"..i])
15 | B.ReskinArrow(_G["TabardFrameCustomization"..i.."LeftButton"], "left")
16 | B.ReskinArrow(_G["TabardFrameCustomization"..i.."RightButton"], "right")
17 | end
18 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/Blizzard_RaidUI.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | C.themes["Blizzard_RaidUI"] = function()
5 | local r, g, b = DB.r, DB.g, DB.b
6 |
7 | for i = 1, NUM_RAID_GROUPS do
8 | local group = _G["RaidGroup"..i]
9 | group:GetRegions():SetAlpha(0)
10 | for j = 1, MEMBERS_PER_RAID_GROUP do
11 | local slot = _G["RaidGroup"..i.."Slot"..j]
12 | select(1, slot:GetRegions()):SetAlpha(0)
13 | select(2, slot:GetRegions()):SetColorTexture(r, g, b, .25)
14 | B.CreateBDFrame(slot, .2)
15 | end
16 | end
17 |
18 | for i = 1, MAX_RAID_MEMBERS do
19 | local bu = _G["RaidGroupButton"..i]
20 | B.StripTextures(bu)
21 | B.CreateBDFrame(bu)
22 | end
23 |
24 | B.Reskin(RaidFrameReadyCheckButton)
25 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/ModelPreviewFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | local ModelPreviewFrame = ModelPreviewFrame
6 | local Display = ModelPreviewFrame.Display
7 |
8 | Display.YesMountsTex:Hide()
9 | Display.ShadowOverlay:Hide()
10 |
11 | B.StripTextures(ModelPreviewFrame)
12 | B.SetBD(ModelPreviewFrame)
13 | B.ReskinArrow(Display.ModelScene.RotateLeftButton, "left")
14 | B.ReskinArrow(Display.ModelScene.RotateRightButton, "right")
15 | B.ReskinClose(ModelPreviewFrameCloseButton)
16 | B.Reskin(ModelPreviewFrame.CloseButton)
17 |
18 | local bg = B.CreateBDFrame(Display.ModelScene, .25)
19 | bg:SetPoint("TOPLEFT", -1, 0)
20 | bg:SetPoint("BOTTOMRIGHT", 2, -2)
21 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/ColorPickerFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | ColorPickerFrameHeader:SetAlpha(0)
6 | ColorPickerFrameHeader:ClearAllPoints()
7 | ColorPickerFrameHeader:SetPoint("TOP", ColorPickerFrame, 0, 10)
8 |
9 | ColorPickerFrame:SetBackdrop(nil)
10 | B.SetBD(ColorPickerFrame)
11 | B.Reskin(ColorPickerOkayButton)
12 | B.Reskin(ColorPickerCancelButton)
13 | B.ReskinSlider(OpacitySliderFrame, true)
14 |
15 | ColorPickerCancelButton:ClearAllPoints()
16 | ColorPickerCancelButton:SetPoint("BOTTOMLEFT", ColorPickerFrame, "BOTTOM", 1, 6)
17 | ColorPickerOkayButton:ClearAllPoints()
18 | ColorPickerOkayButton:SetPoint("BOTTOMRIGHT", ColorPickerFrame, "BOTTOM", -1, 6)
19 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/Blizzard_TalentUI.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | C.themes["Blizzard_TalentUI"] = function()
5 | B.ReskinPortraitFrame(PlayerTalentFrame, 20, -10, -33, 75)
6 | B.Reskin(PlayerTalentFrameCancelButton)
7 | B.ReskinScroll(PlayerTalentFrameScrollFrameScrollBar)
8 | for i = 1, 3 do
9 | local tab = _G["PlayerTalentFrameTab"..i]
10 | B.ReskinTab(tab)
11 | end
12 | B.StripTextures(PlayerTalentFrameScrollFrame)
13 |
14 | for i = 1, MAX_NUM_TALENTS do
15 | local talent = _G["PlayerTalentFrameTalent"..i]
16 | local icon = _G["PlayerTalentFrameTalent"..i.."IconTexture"]
17 | if talent then
18 | B.StripTextures(talent)
19 | icon:SetTexCoord(.08, .92, .08, .92)
20 | B.CreateBDFrame(icon)
21 | end
22 | end
23 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/ActionBar/ActionBar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/GameMenuFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | GameMenuFrameHeader:SetAlpha(0)
6 | GameMenuFrameHeader:ClearAllPoints()
7 | GameMenuFrameHeader:SetPoint("TOP", GameMenuFrame, 0, 7)
8 | B.StripTextures(GameMenuFrame)
9 | B.SetBD(GameMenuFrame)
10 |
11 | local buttons = {
12 | GameMenuButtonHelp,
13 | GameMenuButtonWhatsNew,
14 | GameMenuButtonStore,
15 | GameMenuButtonOptions,
16 | GameMenuButtonUIOptions,
17 | GameMenuButtonKeybindings,
18 | GameMenuButtonMacros,
19 | GameMenuButtonAddons,
20 | GameMenuButtonLogout,
21 | GameMenuButtonQuit,
22 | GameMenuButtonContinue
23 | }
24 |
25 | for _, button in next, buttons do
26 | B.Reskin(button)
27 | end
28 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/HelpFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | B.StripTextures(HelpFrame)
6 | B.SetBD(HelpFrame)
7 | B.ReskinClose(HelpFrameCloseButton)
8 | B.StripTextures(HelpBrowser.BrowserInset)
9 |
10 | B.StripTextures(BrowserSettingsTooltip)
11 | B.SetBD(BrowserSettingsTooltip)
12 | B.Reskin(BrowserSettingsTooltip.CookiesButton)
13 |
14 | B.StripTextures(TicketStatusFrameButton)
15 | B.SetBD(TicketStatusFrameButton)
16 |
17 | B.SetBD(ReportCheatingDialog)
18 | ReportCheatingDialog.Border:Hide()
19 | B.Reskin(ReportCheatingDialogReportButton)
20 | B.Reskin(ReportCheatingDialogCancelButton)
21 | B.StripTextures(ReportCheatingDialogCommentFrame)
22 | B.CreateBDFrame(ReportCheatingDialogCommentFrame, .25)
23 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/oUF/units.lua:
--------------------------------------------------------------------------------
1 | local parent, ns = ...
2 | local oUF = ns.oUF
3 | local Private = oUF.Private
4 |
5 | local enableTargetUpdate = Private.enableTargetUpdate
6 |
7 | -- Handles unit specific actions.
8 | function oUF:HandleUnit(object, unit)
9 | local unit = object.unit or unit
10 | if(unit == 'target') then
11 | object:RegisterEvent('PLAYER_TARGET_CHANGED', object.UpdateAllElements, true)
12 | elseif(unit == 'mouseover') then
13 | object:RegisterEvent('UPDATE_MOUSEOVER_UNIT', object.UpdateAllElements, true)
14 | elseif(unit == 'focus') then
15 | object:RegisterEvent('PLAYER_FOCUS_CHANGED', object.UpdateAllElements, true)
16 | elseif(unit:match('arena%d?$')) then
17 | object:RegisterEvent('ARENA_OPPONENT_UPDATE', object.UpdateAllElements, true)
18 | elseif(unit and unit:match('%w+target')) then
19 | enableTargetUpdate(object)
20 | end
21 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/RaidFrameAuras/TBC/GruulsLair.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | local TIER = 2
6 | local INSTANCE = 565 -- 格鲁尔的巢穴
7 |
8 | -- 莫加尔
9 | module:RegisterDebuff(TIER, INSTANCE, 0, 36032) -- 奥术冲击
10 | module:RegisterDebuff(TIER, INSTANCE, 0, 11726) -- 奴役恶魔
11 | module:RegisterDebuff(TIER, INSTANCE, 0, 33129) -- 黑暗凋零
12 | module:RegisterDebuff(TIER, INSTANCE, 0, 33175) -- 奥术震击
13 | module:RegisterDebuff(TIER, INSTANCE, 0, 33061) -- 冲击波
14 | module:RegisterDebuff(TIER, INSTANCE, 0, 33130) -- 死亡缠绕
15 | module:RegisterDebuff(TIER, INSTANCE, 0, 16508) -- 破胆咆哮
16 | -- 格鲁尔
17 | module:RegisterDebuff(TIER, INSTANCE, 0, 38927) -- 魔能疼痛
18 | module:RegisterDebuff(TIER, INSTANCE, 0, 36240) -- 洞穴震颤
19 | module:RegisterDebuff(TIER, INSTANCE, 0, 33652) -- 石化
20 | module:RegisterDebuff(TIER, INSTANCE, 0, 33525) -- 大地冲击
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/MovieFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | -- Cinematic
6 |
7 | CinematicFrameCloseDialog:HookScript("OnShow", function(self)
8 | self:SetScale(UIParent:GetScale())
9 | end)
10 |
11 | B.StripTextures(CinematicFrameCloseDialog)
12 | local bg = B.SetBD(CinematicFrameCloseDialog)
13 | bg:SetFrameLevel(1)
14 | B.Reskin(CinematicFrameCloseDialogConfirmButton)
15 | B.Reskin(CinematicFrameCloseDialogResumeButton)
16 |
17 | -- Movie
18 |
19 | local closeDialog = MovieFrame.CloseDialog
20 |
21 | closeDialog:HookScript("OnShow", function(self)
22 | self:SetScale(UIParent:GetScale())
23 | end)
24 |
25 | B.StripTextures(closeDialog)
26 | local bg = B.SetBD(closeDialog)
27 | bg:SetFrameLevel(1)
28 | B.Reskin(closeDialog.ConfirmButton)
29 | B.Reskin(closeDialog.ResumeButton)
30 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/WorldMapFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | local WorldMapFrame = WorldMapFrame
6 |
7 | B.ReskinPortraitFrame(WorldMapFrame, 7, 0, -7, 25)
8 | B.ReskinDropDown(WorldMapZoneMinimapDropDown)
9 | B.ReskinDropDown(WorldMapContinentDropDown)
10 | B.ReskinDropDown(WorldMapZoneDropDown)
11 | B.Reskin(WorldMapZoomOutButton)
12 |
13 | C_Timer.After(3, function()
14 | if CodexQuestMapDropdown then
15 | B.ReskinDropDown(CodexQuestMapDropdown)
16 | CodexQuestMapDropdownButton.SetWidth = B.Dummy
17 | end
18 |
19 | -- Check all buttons
20 | for i = 1, WorldMapFrame:GetNumChildren() do
21 | local child = select(i, WorldMapFrame:GetChildren())
22 | if child:IsObjectType("Button") and child.Text and not child.__bg then
23 | B.Reskin(child)
24 | end
25 | end
26 | end)
27 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/DressUpFrames.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | -- Dressup Frame
6 |
7 | B.ReskinPortraitFrame(DressUpFrame, 13, -10, -35, 75)
8 | B.Reskin(DressUpFrameCancelButton)
9 | B.Reskin(DressUpFrameResetButton)
10 | B.ReskinRotationButtons(DressUpModelFrame)
11 |
12 | DressUpFrameResetButton:SetPoint("RIGHT", DressUpFrameCancelButton, "LEFT", -2, 0)
13 |
14 | -- SideDressUp
15 |
16 | B.StripTextures(SideDressUpFrame, 0)
17 | select(5, SideDressUpModelCloseButton:GetRegions()):Hide()
18 |
19 | SideDressUpModel:HookScript("OnShow", function(self)
20 | self:ClearAllPoints()
21 | self:SetPoint("LEFT", self:GetParent():GetParent(), "RIGHT", C.mult, 0)
22 | end)
23 |
24 | B.Reskin(SideDressUpModelResetButton)
25 | B.ReskinClose(SideDressUpModelCloseButton)
26 | B.SetBD(SideDressUpModel)
27 | end)
28 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/License.txt:
--------------------------------------------------------------------------------
1 | Copyright © 2011-2022 siweia
2 |
3 | The contents of this addon, excluding third-party resources, are
4 | copyrighted to its authors with all rights reserved.
5 |
6 | The author of this addon hereby grants you the following rights:
7 |
8 | 1. You may make modifications to this addon for private use only, you
9 | may not publicize any portion of this addon except you have been granted
10 | explicit permission by the author.
11 |
12 | 2. Do not modify the name of this addon, including the addon folders and
13 | files without permission.
14 |
15 | 3. Do not embed the contents of this addon within another addon without
16 | permission or reference.
17 |
18 | 4. This copyright notice shall be included in all copies or substantial
19 | portions of the Software.
20 |
21 | All rights not explicitly addressed in this license are reserved by
22 | the copyright holder.
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/Blizzard.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/ItemTextFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | InboxFrameBg:Hide()
6 | ItemTextPrevPageButton:GetRegions():Hide()
7 | ItemTextNextPageButton:GetRegions():Hide()
8 | ItemTextMaterialTopLeft:SetAlpha(0)
9 | ItemTextMaterialTopRight:SetAlpha(0)
10 | ItemTextMaterialBotLeft:SetAlpha(0)
11 | ItemTextMaterialBotRight:SetAlpha(0)
12 |
13 | ItemTextFrame.CloseButton = ItemTextCloseButton
14 | B.ReskinPortraitFrame(ItemTextFrame, 15, -15, -30, 65)
15 | B.ReskinScroll(ItemTextScrollFrameScrollBar)
16 | B.ReskinArrow(ItemTextPrevPageButton, "left")
17 | B.ReskinArrow(ItemTextNextPageButton, "right")
18 | --ItemTextFramePageBg:SetAlpha(0)
19 | ItemTextPageText:SetTextColor(1, 1, 1)
20 | ItemTextPageText.SetTextColor = B.Dummy
21 |
22 | -- fix scrollbar bg, need reviewed
23 | ItemTextScrollFrame:DisableDrawLayer("ARTWORK")
24 | ItemTextScrollFrame:DisableDrawLayer("BACKGROUND")
25 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/Blizzard_TrainerUI.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | C.themes["Blizzard_TrainerUI"] = function()
5 | B.ReskinPortraitFrame(ClassTrainerFrame, 10, -5, -30, 70)
6 | B.Reskin(ClassTrainerTrainButton)
7 | B.Reskin(ClassTrainerCancelButton)
8 | B.ReskinDropDown(ClassTrainerFrameFilterDropDown)
9 | B.ReskinScroll(ClassTrainerListScrollFrameScrollBar)
10 | B.ReskinScroll(ClassTrainerDetailScrollFrameScrollBar)
11 | B.CreateBDFrame(ClassTrainerDetailScrollFrame, .25)
12 |
13 | B.ReskinCollapse(ClassTrainerCollapseAllButton)
14 | ClassTrainerExpandButtonFrame:DisableDrawLayer("BACKGROUND")
15 |
16 | for i = 1, 11 do
17 | local bu = _G["ClassTrainerSkill"..i]
18 | B.ReskinCollapse(bu)
19 | end
20 |
21 | hooksecurefunc("ClassTrainer_SetSelection", function()
22 | local tex = ClassTrainerSkillIcon:GetNormalTexture()
23 | if tex then
24 | tex:SetTexCoord(.08, .92, .08, .92)
25 | end
26 | end)
27 | B.StripTextures(ClassTrainerSkillIcon)
28 | B.CreateBDFrame(ClassTrainerSkillIcon)
29 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/AuraWatchList/Paladin.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | if DB.MyClass ~= "PALADIN" then return end
6 |
7 | -- 圣骑士的法术监控
8 | local list = {
9 | ["Player Aura"] = { -- 玩家光环组
10 | {AuraID = 25780, UnitID = "player"}, -- 正义之怒
11 | },
12 | ["Target Aura"] = { -- 目标光环组
13 | {AuraID = 853, UnitID = "target", Caster = "player"}, -- 制裁之锤
14 | },
15 | ["Special Aura"] = { -- 玩家重要光环组
16 | {AuraID = 498, UnitID = "player"}, -- 圣佑术
17 | {AuraID = 642, UnitID = "player"}, -- 圣盾术
18 | {AuraID = 27155, UnitID = "player"}, -- 正义圣印
19 | {AuraID = 27160, UnitID = "player"}, -- 光明圣印
20 | {AuraID = 27166, UnitID = "player"}, -- 智慧圣印
21 | {AuraID = 31884, UnitID = "player"}, -- 复仇之怒
22 | {AuraID = 31895, UnitID = "player"}, -- 公正圣印
23 | {AuraID = 348704, UnitID = "player"}, -- 复仇圣印
24 | },
25 | ["Focus Aura"] = { -- 焦点光环组
26 | },
27 | ["Spell Cooldown"] = { -- 冷却计时组
28 | {SlotID = 13}, -- 饰品1
29 | {SlotID = 14}, -- 饰品2
30 | },
31 | }
32 |
33 | module:AddNewAuraWatch("PALADIN", list)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/PetStable.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | B.ReskinPortraitFrame(PetStableFrame, 15, -15, -35, 73)
6 | B.Reskin(PetStablePurchaseButton)
7 | B.ReskinRotationButtons(PetStableModel)
8 |
9 | local slots = {
10 | PetStableCurrentPet,
11 | PetStableStabledPet1,
12 | PetStableStabledPet2,
13 | }
14 |
15 | for _, bu in pairs(slots) do
16 | bu:SetNormalTexture("")
17 | bu:SetPushedTexture("")
18 | bu:SetCheckedTexture(DB.textures.pushed)
19 | bu:GetHighlightTexture():SetColorTexture(1, 1, 1, .25)
20 | bu:DisableDrawLayer("BACKGROUND")
21 |
22 | _G[bu:GetName().."IconTexture"]:SetTexCoord(.08, .92, .08, .92)
23 | bu.bg = B.CreateBDFrame(bu, .25)
24 | end
25 |
26 | hooksecurefunc("PetStable_Update", function()
27 | for i = 1, 2 do
28 | local bu = _G["PetStableStabledPet"..i]
29 | if i <= GetNumStableSlots() then
30 | bu.bg:SetBackdropBorderColor(0, 0, 0)
31 | else
32 | bu.bg:SetBackdropBorderColor(1, 0, 0)
33 | end
34 | end
35 | end)
36 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/oUF/factory.lua:
--------------------------------------------------------------------------------
1 | local parent, ns = ...
2 | local oUF = ns.oUF
3 | local Private = oUF.Private
4 |
5 | local argcheck = Private.argcheck
6 |
7 | local _QUEUE = {}
8 | local _FACTORY = CreateFrame'Frame'
9 | _FACTORY:SetScript('OnEvent', function(self, event, ...)
10 | return self[event](self, event, ...)
11 | end)
12 |
13 | _FACTORY:RegisterEvent'PLAYER_LOGIN'
14 | _FACTORY.active = true
15 |
16 | function _FACTORY:PLAYER_LOGIN()
17 | if(not self.active) then return end
18 |
19 | for _, func in next, _QUEUE do
20 | func(oUF)
21 | end
22 |
23 | -- Avoid creating dupes.
24 | wipe(_QUEUE)
25 | end
26 |
27 | function oUF:Factory(func)
28 | argcheck(func, 2, 'function')
29 |
30 | -- Call the function directly if we're active and logged in.
31 | if(IsLoggedIn() and _FACTORY.active) then
32 | return func(self)
33 | else
34 | table.insert(_QUEUE, func)
35 | end
36 | end
37 |
38 | function oUF:EnableFactory()
39 | _FACTORY.active = true
40 | end
41 |
42 | function oUF:DisableFactory()
43 | _FACTORY.active = nil
44 | end
45 |
46 | function oUF:RunFactoryQueue()
47 | _FACTORY:PLAYER_LOGIN()
48 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/AuraWatchList/Shaman.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | if DB.MyClass ~= "SHAMAN" then return end
6 |
7 | -- 萨满的法术监控
8 | local list = {
9 | ["Player Aura"] = { -- 玩家光环组
10 | {AuraID = 546, UnitID = "player"}, -- 水上行走
11 | {AuraID = 25472, UnitID = "player"}, -- 闪电之盾
12 | {AuraID = 33736, UnitID = "player"}, -- 水盾
13 | },
14 | ["Target Aura"] = { -- 目标光环组
15 | {AuraID = 974, UnitID = "target", Caster = "player"}, -- 大地之盾
16 | {AuraID = 25464, UnitID = "target", Caster = "player"}, -- 冰霜震击
17 | {AuraID = 25457, UnitID = "target", Caster = "player"}, -- 烈焰震击
18 | },
19 | ["Special Aura"] = { -- 玩家重要光环组
20 | {AuraID = 974, UnitID = "player"}, -- 大地之盾
21 | {AuraID = 16166, UnitID = "player"}, -- 元素掌控
22 | {AuraID = 30823, UnitID = "player"}, -- 萨满之怒
23 | {AuraID = 16188, UnitID = "player", Flash = true}, -- 自然迅捷
24 | },
25 | ["Focus Aura"] = { -- 焦点光环组
26 | },
27 | ["Spell Cooldown"] = { -- 冷却计时组
28 | {SlotID = 13}, -- 饰品1
29 | {SlotID = 14}, -- 饰品2
30 | {SpellID = 20608}, -- 复生
31 | },
32 | }
33 |
34 | module:AddNewAuraWatch("SHAMAN", list)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/ActionBar/Bars/Bar2.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local Bar = B:GetModule("Actionbar")
4 |
5 | local _G = _G
6 | local tinsert = tinsert
7 | local cfg = C.Bars.bar2
8 | local margin = C.Bars.margin
9 |
10 | function Bar:CreateBar2()
11 | local num = NUM_ACTIONBAR_BUTTONS
12 | local buttonList = {}
13 |
14 | local frame = CreateFrame("Frame", "NDui_ActionBar2", UIParent, "SecureHandlerStateTemplate")
15 | frame.mover = B.Mover(frame, L["Actionbar"].."2", "Bar2", {"BOTTOM", _G.NDui_ActionBar1, "TOP", 0, -margin})
16 | Bar.movers[2] = frame.mover
17 |
18 | MultiBarBottomLeft:SetParent(frame)
19 | MultiBarBottomLeft:EnableMouse(false)
20 |
21 | for i = 1, num do
22 | local button = _G["MultiBarBottomLeftButton"..i]
23 | tinsert(buttonList, button)
24 | tinsert(Bar.buttons, button)
25 | end
26 | frame.buttons = buttonList
27 |
28 | frame.frameVisibility = "[petbattle][overridebar][vehicleui][possessbar,@vehicle,exists][shapeshift] hide; show"
29 | RegisterStateDriver(frame, "visibility", frame.frameVisibility)
30 |
31 | if cfg.fader then
32 | Bar.CreateButtonFrameFader(frame, buttonList, cfg.fader)
33 | end
34 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/ActionBar/Bars/Petbar.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local Bar = B:GetModule("Actionbar")
4 |
5 | local _G = _G
6 | local tinsert = tinsert
7 | local cfg = C.Bars.petbar
8 | local margin = C.Bars.margin
9 |
10 | function Bar:CreatePetbar()
11 | local num = NUM_PET_ACTION_SLOTS
12 | local buttonList = {}
13 |
14 | local frame = CreateFrame("Frame", "NDui_ActionBarPet", UIParent, "SecureHandlerStateTemplate")
15 | frame.mover = B.Mover(frame, L["Pet Actionbar"], "PetBar", {"BOTTOM", _G.NDui_ActionBar2, "TOP", 0, margin})
16 | Bar.movers[7] = frame.mover
17 |
18 | PetActionBarFrame:SetParent(frame)
19 | PetActionBarFrame:EnableMouse(false)
20 | SlidingActionBarTexture0:SetTexture(nil)
21 | SlidingActionBarTexture1:SetTexture(nil)
22 |
23 | for i = 1, num do
24 | local button = _G["PetActionButton"..i]
25 | tinsert(buttonList, button)
26 | tinsert(Bar.buttons, button)
27 | end
28 | frame.buttons = buttonList
29 |
30 | frame.frameVisibility = "[petbattle][overridebar][vehicleui][possessbar,@vehicle,exists][shapeshift] hide; [pet] show; hide"
31 | RegisterStateDriver(frame, "visibility", frame.frameVisibility)
32 |
33 | if cfg.fader then
34 | Bar.CreateButtonFrameFader(frame, buttonList, cfg.fader)
35 | end
36 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Tooltip/HoverTips.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local TT = B:GetModule("Tooltip")
4 |
5 | local strmatch = string.match
6 |
7 | local orig1, orig2 = {}, {}
8 | local linkTypes = {
9 | item = true,
10 | enchant = true,
11 | spell = true,
12 | quest = true,
13 | unit = true,
14 | talent = true,
15 | instancelock = true,
16 | }
17 |
18 | function TT:HyperLink_SetTypes(link)
19 | GameTooltip:SetOwner(self, "ANCHOR_TOPRIGHT", -3, 5)
20 | GameTooltip:SetHyperlink(link)
21 | GameTooltip:Show()
22 | end
23 |
24 | function TT:HyperLink_OnEnter(link, ...)
25 | local linkType = strmatch(link, "^([^:]+)")
26 | if linkType and linkTypes[linkType] then
27 | TT.HyperLink_SetTypes(self, link)
28 | end
29 |
30 | if orig1[self] then return orig1[self](self, link, ...) end
31 | end
32 |
33 | function TT:HyperLink_OnLeave(_, ...)
34 | GameTooltip:Hide()
35 |
36 | if orig2[self] then return orig2[self](self, ...) end
37 | end
38 |
39 | for i = 1, NUM_CHAT_WINDOWS do
40 | local frame = _G["ChatFrame"..i]
41 | orig1[frame] = frame:GetScript("OnHyperlinkEnter")
42 | frame:SetScript("OnHyperlinkEnter", TT.HyperLink_OnEnter)
43 | orig2[frame] = frame:GetScript("OnHyperlinkLeave")
44 | frame:SetScript("OnHyperlinkLeave", TT.HyperLink_OnLeave)
45 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/AuraWatchList/Mage.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | if DB.MyClass ~= "MAGE" then return end
6 |
7 | -- 法师的法术监控
8 | local list = {
9 | ["Player Aura"] = { -- 玩家光环组
10 | {AuraID = 130, UnitID = "player"}, -- 缓落
11 | },
12 | ["Target Aura"] = { -- 目标光环组
13 | {AuraID = 116, UnitID = "target", Caster = "player"}, -- 寒冰箭
14 | {AuraID = 118, UnitID = "target", Caster = "player"}, -- 变形术
15 | {AuraID = 122, UnitID = "target", Caster = "player"}, -- 冰霜新星
16 | {AuraID = 12654, UnitID = "target", Caster = "player"}, -- 点燃
17 | {AuraID = 11366, UnitID = "target", Caster = "player"}, -- 炎爆术
18 | },
19 | ["Special Aura"] = { -- 玩家重要光环组
20 | {AuraID = 66, UnitID = "player"}, -- 隐形术
21 | {AuraID = 27131, UnitID = "player"}, -- 法力护盾
22 | {AuraID = 27128, UnitID = "player"}, -- 防护火焰结界
23 | {AuraID = 32796, UnitID = "player"}, -- 防护冰霜结界
24 | {AuraID = 45438, UnitID = "player"}, -- 寒冰屏障
25 | {AuraID = 11129, UnitID = "player"}, -- 燃烧
26 | {AuraID = 12042, UnitID = "player"}, -- 奥术强化
27 | {AuraID = 12472, UnitID = "player"}, -- 冰冷血脉
28 | },
29 | ["Focus Aura"] = { -- 焦点光环组
30 | },
31 | ["Spell Cooldown"] = { -- 冷却计时组
32 | {SlotID = 13}, -- 饰品1
33 | {SlotID = 14}, -- 饰品2
34 | },
35 | }
36 |
37 | module:AddNewAuraWatch("MAGE", list)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/oUF/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2006-2022 Trond A Ekseth
2 | Copyright (c) 2016-2022 Val Voronov
3 | Copyright (c) 2016-2022 Adrian L Lange
4 | Copyright (c) 2016-2022 Rainrider
5 |
6 | Permission is hereby granted, free of charge, to any person
7 | obtaining a copy of this software and associated documentation
8 | files (the "Software"), to deal in the Software without
9 | restriction, including without limitation the rights to use,
10 | copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the
12 | Software is furnished to do so, subject to the following
13 | conditions:
14 |
15 | The above copyright notice and this permission notice shall be
16 | included in all copies or substantial portions of the Software.
17 |
18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
20 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
22 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25 | OTHER DEALINGS IN THE SOFTWARE.
26 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/ActionBar/Bars/Bar5.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local Bar = B:GetModule("Actionbar")
4 |
5 | local _G = _G
6 | local tinsert = tinsert
7 | local cfg = C.Bars.bar5
8 | local margin = C.Bars.margin
9 |
10 | function Bar:CreateBar5()
11 | local num = NUM_ACTIONBAR_BUTTONS
12 | local buttonList = {}
13 |
14 | local frame = CreateFrame("Frame", "NDui_ActionBar5", UIParent, "SecureHandlerStateTemplate")
15 | frame.mover = B.Mover(frame, L["Actionbar"].."5", "Bar5", {"RIGHT", _G.NDui_ActionBar4, "LEFT", margin, 0})
16 | Bar.movers[6] = frame.mover
17 |
18 | MultiBarLeft:SetParent(frame)
19 | MultiBarLeft:EnableMouse(false)
20 | hooksecurefunc(MultiBarLeft, "SetScale", function(self, scale, force)
21 | if not force and scale ~= 1 then
22 | self:SetScale(1, true)
23 | end
24 | end)
25 |
26 | for i = 1, num do
27 | local button = _G["MultiBarLeftButton"..i]
28 | tinsert(buttonList, button)
29 | tinsert(Bar.buttons, button)
30 | end
31 | frame.buttons = buttonList
32 |
33 | frame.frameVisibility = "[petbattle][overridebar][vehicleui][possessbar,@vehicle,exists][shapeshift] hide; show"
34 | RegisterStateDriver(frame, "visibility", frame.frameVisibility)
35 |
36 | if cfg.fader then
37 | frame.isDisable = not C.db["Actionbar"]["Bar5Fader"]
38 | Bar.CreateButtonFrameFader(frame, buttonList, cfg.fader)
39 | end
40 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/cargBags/mixins-add/sorts.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | cargBags: An inventory framework addon for World of Warcraft
3 |
4 | Copyright (C) 2010 Constantin "Cargor" Schomburg
5 |
6 | cargBags is free software; you can redistribute it and/or
7 | modify it under the terms of the GNU General Public License
8 | as published by the Free Software Foundation; either version 2
9 | of the License, or (at your option) any later version.
10 |
11 | cargBags is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with cargBags; if not, write to the Free Software
18 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 |
20 | DESCRIPTION
21 | This file provides default sort-functions for your Containers.
22 |
23 | DEPENDENCIES
24 | mixins/api-common.lua
25 | ]]
26 |
27 | local _, ns = ...
28 | local sorts = ns.cargBags.classes.Container.sorts
29 |
30 | --[[!
31 | Sorts the buttons depending on their bagSlot
32 | ]]
33 | function sorts.bagSlot(a, b)
34 | if(a.bagID == b.bagID) then
35 | return a.slotID < b.slotID
36 | else
37 | return a.bagID < b.bagID
38 | end
39 | end
40 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Tooltip/Targeted.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local TT = B:GetModule("Tooltip")
4 |
5 | local wipe, tinsert, tconcat = table.wipe, table.insert, table.concat
6 | local IsInGroup, IsInRaid, GetNumGroupMembers = IsInGroup, IsInRaid, GetNumGroupMembers
7 | local UnitExists, UnitIsUnit, UnitIsDeadOrGhost, UnitName = UnitExists, UnitIsUnit, UnitIsDeadOrGhost, UnitName
8 |
9 | local targetTable = {}
10 |
11 | function TT:ScanTargets()
12 | if not C.db["Tooltip"]["TargetBy"] then return end
13 | if not IsInGroup() then return end
14 |
15 | local _, unit = self:GetUnit()
16 | if not UnitExists(unit) then return end
17 |
18 | wipe(targetTable)
19 |
20 | local isInRaid = IsInRaid()
21 | for i = 1, GetNumGroupMembers() do
22 | local member = (isInRaid and "raid"..i or "party"..i)
23 | if UnitIsUnit(unit, member.."target") and not UnitIsUnit("player", member) and not UnitIsDeadOrGhost(member) then
24 | local color = B.HexRGB(B.UnitColor(member))
25 | local name = color..UnitName(member).."|r"
26 | tinsert(targetTable, name)
27 | end
28 | end
29 |
30 | if #targetTable > 0 then
31 | GameTooltip:AddLine(L["Targeted By"]..DB.InfoColor.."("..#targetTable..")|r "..tconcat(targetTable, ", "), nil, nil, nil, 1)
32 | end
33 | end
34 |
35 | function TT:TargetedInfo()
36 | GameTooltip:HookScript("OnTooltipSetUnit", TT.ScanTargets)
37 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/AddonList.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | local cr, cg, cb = DB.r, DB.g, DB.b
6 |
7 | B.ReskinPortraitFrame(AddonList)
8 | B.Reskin(AddonListEnableAllButton)
9 | B.Reskin(AddonListDisableAllButton)
10 | B.Reskin(AddonListCancelButton)
11 | B.Reskin(AddonListOkayButton)
12 | B.ReskinCheck(AddonListForceLoad)
13 | B.ReskinDropDown(AddonCharacterDropDown)
14 | B.ReskinScroll(AddonListScrollFrameScrollBar)
15 |
16 | AddonListForceLoad:SetSize(26, 26)
17 | AddonCharacterDropDown:SetWidth(170)
18 |
19 | for i = 1, MAX_ADDONS_DISPLAYED do
20 | local checkbox = _G["AddonListEntry"..i.."Enabled"]
21 | B.ReskinCheck(checkbox, true)
22 | B.Reskin(_G["AddonListEntry"..i.."Load"])
23 | end
24 |
25 | hooksecurefunc("AddonList_Update", function()
26 | for i = 1, MAX_ADDONS_DISPLAYED do
27 | local entry = _G["AddonListEntry"..i]
28 | if entry and entry:IsShown() then
29 | local checkbox = _G["AddonListEntry"..i.."Enabled"]
30 | if checkbox.forceSaturation then
31 | local tex = checkbox:GetCheckedTexture()
32 | if checkbox.state == 2 then
33 | tex:SetDesaturated(true)
34 | tex:SetVertexColor(cr, cg, cb)
35 | elseif checkbox.state == 1 then
36 | tex:SetVertexColor(1, .8, 0, .8)
37 | end
38 | end
39 | end
40 | end
41 | end)
42 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/RaidFrameAuras/TBC/ZulAman.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | local TIER = 2
6 | local INSTANCE = 568 -- 祖阿曼
7 |
8 | -- 埃基尔松
9 | module:RegisterDebuff(TIER, INSTANCE, 0, 43621) -- 强风
10 | module:RegisterDebuff(TIER, INSTANCE, 0, 43648) -- 电能风暴
11 |
12 | -- 纳洛拉克
13 | module:RegisterDebuff(TIER, INSTANCE, 0, 42395) -- 刺裂
14 | module:RegisterDebuff(TIER, INSTANCE, 0, 42397) -- 撕裂
15 | module:RegisterDebuff(TIER, INSTANCE, 0, 42398) -- 震耳咆哮
16 |
17 | -- 加亚莱
18 | module:RegisterDebuff(TIER, INSTANCE, 0, 43114) -- 火墙
19 | module:RegisterDebuff(TIER, INSTANCE, 0, 43140) -- 烈焰吐息
20 | module:RegisterDebuff(TIER, INSTANCE, 0, 43299) -- 烈焰打击
21 |
22 | -- 哈尔拉兹
23 | module:RegisterDebuff(TIER, INSTANCE, 0, 43303) -- 烈焰震击
24 |
25 | -- 妖术领主玛拉卡斯
26 | module:RegisterDebuff(TIER, INSTANCE, 0, 44131) -- 吸取能量
27 | module:RegisterDebuff(TIER, INSTANCE, 0, 43501) -- 灵魂虹吸
28 | module:RegisterDebuff(TIER, INSTANCE, 0, 43586) -- 快速感染
29 | module:RegisterDebuff(TIER, INSTANCE, 0, 43550) -- 精神控制
30 | module:RegisterDebuff(TIER, INSTANCE, 0, 43441) -- 致死打击
31 |
32 | -- 祖尔金
33 | module:RegisterDebuff(TIER, INSTANCE, 0, 43150) -- 利爪之怒
34 | module:RegisterDebuff(TIER, INSTANCE, 0, 43983) -- 能量风暴
35 | module:RegisterDebuff(TIER, INSTANCE, 0, 43093) -- 重伤投掷
36 | module:RegisterDebuff(TIER, INSTANCE, 0, 43437) -- 麻痹
37 | module:RegisterDebuff(TIER, INSTANCE, 0, 43095) -- 麻痹蔓延
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/AuraWatchList/Rogue.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | if DB.MyClass ~= "ROGUE" then return end
6 |
7 | -- 盗贼的法术监控
8 | local list = {
9 | ["Player Aura"] = { -- 玩家光环组
10 | {AuraID = 1784, UnitID = "player"}, -- 潜行
11 | },
12 | ["Target Aura"] = { -- 目标光环组
13 | {AuraID = 408, UnitID = "target", Caster = "player"}, -- 肾击
14 | {AuraID = 703, UnitID = "target", Caster = "player"}, -- 锁喉
15 | {AuraID = 1833, UnitID = "target", Caster = "player"}, -- 偷袭
16 | {AuraID = 6770, UnitID = "target", Caster = "player"}, -- 闷棍
17 | {AuraID = 2094, UnitID = "target", Caster = "player"}, -- 致盲
18 | {AuraID = 1330, UnitID = "target", Caster = "player"}, -- 锁喉
19 | {AuraID = 1776, UnitID = "target", Caster = "player"}, -- 凿击
20 | {AuraID = 1943, UnitID = "target", Caster = "player"}, -- 割裂
21 | },
22 | ["Special Aura"] = { -- 玩家重要光环组
23 | {AuraID = 2983, UnitID = "player"}, -- 疾跑
24 | {AuraID = 5171, UnitID = "player"}, -- 切割
25 | {AuraID = 26669, UnitID = "player"}, -- 闪避
26 | {AuraID = 26888, UnitID = "player"}, -- 消失
27 | {AuraID = 13750, UnitID = "player"}, -- 冲动
28 | {AuraID = 13877, UnitID = "player"}, -- 剑刃乱舞
29 | },
30 | ["Focus Aura"] = { -- 焦点光环组
31 | },
32 | ["Spell Cooldown"] = { -- 冷却计时组
33 | {SlotID = 13}, -- 饰品1
34 | {SlotID = 14}, -- 饰品2
35 | {SpellID = 13750}, -- 冲动
36 | },
37 | }
38 |
39 | module:AddNewAuraWatch("ROGUE", list)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/Blizzard_DebugTools.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | -- Table Attribute Display
5 | local function reskinTableAttribute(frame)
6 | if frame.styled then return end
7 |
8 | B.StripTextures(frame)
9 | B.SetBD(frame)
10 | B.ReskinClose(frame.CloseButton)
11 | B.ReskinCheck(frame.VisibilityButton)
12 | B.ReskinCheck(frame.HighlightButton)
13 | B.ReskinCheck(frame.DynamicUpdateButton)
14 | B.ReskinInput(frame.FilterBox)
15 |
16 | B.ReskinArrow(frame.OpenParentButton, "up")
17 | B.ReskinArrow(frame.NavigateBackwardButton, "left")
18 | B.ReskinArrow(frame.NavigateForwardButton, "right")
19 | B.ReskinArrow(frame.DuplicateButton, "up")
20 |
21 | frame.NavigateBackwardButton:ClearAllPoints()
22 | frame.NavigateBackwardButton:SetPoint("LEFT", frame.OpenParentButton, "RIGHT")
23 | frame.NavigateForwardButton:ClearAllPoints()
24 | frame.NavigateForwardButton:SetPoint("LEFT", frame.NavigateBackwardButton, "RIGHT")
25 | frame.DuplicateButton:ClearAllPoints()
26 | frame.DuplicateButton:SetPoint("LEFT", frame.NavigateForwardButton, "RIGHT")
27 |
28 | B.StripTextures(frame.ScrollFrameArt)
29 | B.CreateBDFrame(frame.ScrollFrameArt, .25)
30 | B.ReskinScroll(frame.LinesScrollFrame.ScrollBar)
31 |
32 | frame.styled = true
33 | end
34 |
35 | C.themes["Blizzard_DebugTools"] = function()
36 | reskinTableAttribute(TableAttributeDisplay)
37 | hooksecurefunc(TableInspectorMixin, "InspectTable", reskinTableAttribute)
38 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/ActionBar/Bars/Bar3.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local Bar = B:GetModule("Actionbar")
4 |
5 | local _G = _G
6 | local tinsert = tinsert
7 | local cfg = C.Bars.bar3
8 | local margin, padding = C.Bars.margin, C.Bars.padding
9 |
10 | function Bar:CreateBar3()
11 | local num = NUM_ACTIONBAR_BUTTONS
12 | local buttonList = {}
13 |
14 | local frame = CreateFrame("Frame", "NDui_ActionBar3", UIParent, "SecureHandlerStateTemplate")
15 | frame.mover = B.Mover(frame, L["Actionbar"].."3L", "Bar3L", {"RIGHT", _G.NDui_ActionBar1, "TOPLEFT", -margin, -padding/2})
16 | local child = CreateFrame("Frame", nil, frame)
17 | child:SetSize(1, 1)
18 | child.mover = B.Mover(child, L["Actionbar"].."3R", "Bar3R", {"LEFT", _G.NDui_ActionBar1, "TOPRIGHT", margin, -padding/2})
19 | frame.child = child
20 |
21 | Bar.movers[3] = frame.mover
22 | Bar.movers[4] = child.mover
23 |
24 | MultiBarBottomRight:SetParent(frame)
25 | MultiBarBottomRight:EnableMouse(false)
26 |
27 | for i = 1, num do
28 | local button = _G["MultiBarBottomRightButton"..i]
29 | tinsert(buttonList, button)
30 | tinsert(Bar.buttons, button)
31 | end
32 | frame.buttons = buttonList
33 |
34 | frame.frameVisibility = "[petbattle][overridebar][vehicleui][possessbar,@vehicle,exists][shapeshift] hide; show"
35 | RegisterStateDriver(frame, "visibility", frame.frameVisibility)
36 |
37 | if cfg.fader then
38 | Bar.CreateButtonFrameFader(frame, buttonList, cfg.fader)
39 | end
40 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/AuraWatchList/Warrior.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | if DB.MyClass ~= "WARRIOR" then return end
6 |
7 | -- 战士的法术监控
8 | local list = {
9 | ["Player Aura"] = { -- 玩家光环组
10 | --{AuraID = 32216, UnitID = "player"}, -- 胜利
11 | },
12 | ["Target Aura"] = { -- 目标光环组
13 | {AuraID = 355, UnitID = "target", Caster = "player"}, -- 嘲讽
14 | {AuraID = 772, UnitID = "target", Caster = "player"}, -- 撕裂
15 | {AuraID = 1715, UnitID = "target", Caster = "player"}, -- 断筋
16 | {AuraID = 1160, UnitID = "target", Caster = "player"}, -- 挫志怒吼
17 | {AuraID = 6343, UnitID = "target", Caster = "player"}, -- 雷霆一击
18 | {AuraID = 5246, UnitID = "target", Caster = "player"}, -- 破胆
19 | {AuraID = 7922, UnitID = "target", Caster = "player"}, -- 冲锋:昏迷
20 | {AuraID = 12323, UnitID = "target", Caster = "player"}, -- 刺耳怒吼
21 | },
22 | ["Special Aura"] = { -- 玩家重要光环组
23 | {AuraID = 871, UnitID = "player"}, -- 盾墙
24 | {AuraID = 1719, UnitID = "player"}, -- 战吼
25 | {AuraID = 7384, UnitID = "player"}, -- 压制
26 | {AuraID = 12975, UnitID = "player"}, -- 破釜沉舟
27 | {AuraID = 12292, UnitID = "player"}, -- 浴血奋战
28 | {AuraID = 23920, UnitID = "player"}, -- 法术反射
29 | {AuraID = 18499, UnitID = "player"}, -- 狂暴之怒
30 | },
31 | ["Focus Aura"] = { -- 焦点光环组
32 | },
33 | ["Spell Cooldown"] = { -- 冷却计时组
34 | {SlotID = 13}, -- 饰品1
35 | {SlotID = 14}, -- 饰品2
36 | },
37 | }
38 |
39 | module:AddNewAuraWatch("WARRIOR", list)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/AuraWatchList/Warlock.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | if DB.MyClass ~= "WARLOCK" then return end
6 |
7 | -- 术士的法术监控
8 | local list = {
9 | ["Player Aura"] = { -- 玩家光环组
10 | {AuraID = 5697, UnitID = "player"}, -- 无尽呼吸
11 | },
12 | ["Target Aura"] = { -- 目标光环组
13 | {AuraID = 27228, UnitID = "target"}, -- 元素诅咒
14 | {AuraID = 710, UnitID = "target", Caster = "player"}, -- 放逐术
15 | {AuraID = 6215, UnitID = "target", Caster = "pet"}, -- 恐惧
16 | {AuraID = 6358, UnitID = "target", Caster = "pet"}, -- 魅惑
17 | {AuraID = 27223, UnitID = "target", Caster = "player"}, -- 死亡缠绕
18 | {AuraID = 17928, UnitID = "target", Caster = "player"}, -- 恐惧嚎叫
19 | {AuraID = 17877, UnitID = "target", Caster = "player"}, -- 暗影灼烧
20 | {AuraID = 27215, UnitID = "target", Caster = "player"}, -- 献祭
21 | {AuraID = 30910, UnitID = "target", Caster = "player"}, -- 厄运诅咒
22 | {AuraID = 27216, UnitID = "target", Caster = "player"}, -- 腐蚀术
23 | {AuraID = 27218, UnitID = "target", Caster = "player"}, -- 痛苦诅咒
24 | {AuraID = 30108, UnitID = "target", Caster = "player"}, -- 痛苦无常
25 | {AuraID = 27243, UnitID = "target", Caster = "player"}, -- 腐蚀之种
26 | },
27 | ["Special Aura"] = { -- 玩家重要光环组
28 | {AuraID = 28610, UnitID = "pet"}, -- 防护暗影结界
29 | },
30 | ["Focus Aura"] = { -- 焦点光环组
31 | },
32 | ["Spell Cooldown"] = { -- 冷却计时组
33 | {SlotID = 13}, -- 饰品1
34 | {SlotID = 14}, -- 饰品2
35 | },
36 | }
37 |
38 | module:AddNewAuraWatch("WARLOCK", list)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/Blizzard_GMChatUI.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | C.themes["Blizzard_GMChatUI"] = function()
5 | local frame = _G["GMChatFrame"]
6 | frame:SetClampRectInsets(0, 0, 0, 0)
7 | B.StripTextures(frame)
8 | B.SetBD(frame):SetPoint("BOTTOMRIGHT", C.mult, -5)
9 |
10 | local eb = frame.editBox
11 | B.StripTextures(eb)
12 | eb:SetAltArrowKeyMode(false)
13 | eb:ClearAllPoints()
14 | eb:SetPoint("TOPLEFT", frame, "BOTTOMLEFT", 0, -7)
15 | eb:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -28, -32)
16 |
17 | local bg = B.SetBD(eb)
18 | bg:Hide()
19 | hooksecurefunc("ChatEdit_DeactivateChat", function(editBox)
20 | if editBox.isGM then bg:Hide() end
21 | end)
22 | hooksecurefunc("ChatEdit_ActivateChat", function(editBox)
23 | if editBox.isGM then bg:Show() end
24 | end)
25 |
26 | local lang = _G["GMChatFrameEditBoxLanguage"]
27 | lang:GetRegions():SetAlpha(0)
28 | lang:SetPoint("TOPLEFT", eb, "TOPRIGHT", 3, 0)
29 | lang:SetPoint("BOTTOMRIGHT", eb, "BOTTOMRIGHT", 28, 0)
30 | B.SetBD(lang)
31 |
32 | local tab = _G["GMChatTab"]
33 | B.StripTextures(tab)
34 | B.SetBD(tab):SetBackdropColor(0, .6, 1, .3)
35 | tab:SetPoint("BOTTOMLEFT", frame, "TOPLEFT", 0, 3)
36 | tab:SetPoint("TOPRIGHT", frame, "TOPRIGHT", 0, 28)
37 | GMChatTabIcon:SetTexture("Interface\\ChatFrame\\UI-ChatIcon-Blizz")
38 |
39 | local close = GMChatFrameCloseButton
40 | B.ReskinClose(close)
41 | close:ClearAllPoints()
42 | close:SetPoint("RIGHT", tab, -5, 0)
43 |
44 | B.HideObject(frame.buttonFrame)
45 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/RaidFrameAuras/TBC/HyjalSummit.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | local TIER = 2
6 | local INSTANCE = 534 -- 海加尔山之战
7 |
8 | -- 小怪
9 | module:RegisterDebuff(TIER, INSTANCE, 0, 31688) -- 冰霜吐息
10 | module:RegisterDebuff(TIER, INSTANCE, 0, 31651) -- 女妖诅咒
11 | module:RegisterDebuff(TIER, INSTANCE, 0, 31724) -- 烈焰击打
12 | module:RegisterDebuff(TIER, INSTANCE, 0, 31610) -- 击倒
13 | -- 雷基·冬寒
14 | module:RegisterDebuff(TIER, INSTANCE, 0, 31257) -- 冰冻
15 | module:RegisterDebuff(TIER, INSTANCE, 0, 31250) -- 冰霜新星
16 | module:RegisterDebuff(TIER, INSTANCE, 0, 31249) -- 寒冰箭
17 | module:RegisterDebuff(TIER, INSTANCE, 0, 31258) -- 死亡凋零
18 | -- 安纳塞隆
19 | module:RegisterDebuff(TIER, INSTANCE, 0, 31298) -- 催眠术
20 | module:RegisterDebuff(TIER, INSTANCE, 0, 31306) -- 腐臭虫群
21 | -- 卡兹洛加
22 | module:RegisterDebuff(TIER, INSTANCE, 0, 31447) -- 卡兹洛加印记
23 | module:RegisterDebuff(TIER, INSTANCE, 0, 31480) -- 战争践踏
24 | module:RegisterDebuff(TIER, INSTANCE, 0, 31477) -- 残废术
25 | -- 阿兹加洛
26 | module:RegisterDebuff(TIER, INSTANCE, 0, 31341) -- 不熄之焰
27 | module:RegisterDebuff(TIER, INSTANCE, 0, 31347) -- 厄运
28 | module:RegisterDebuff(TIER, INSTANCE, 0, 31340) -- 火焰之雨
29 | module:RegisterDebuff(TIER, INSTANCE, 0, 31344) -- 阿兹加洛之嚎
30 | -- 阿克蒙德
31 | module:RegisterDebuff(TIER, INSTANCE, 0, 31972) -- 军团之握
32 | module:RegisterDebuff(TIER, INSTANCE, 0, 31944) -- 厄运之火
33 | module:RegisterDebuff(TIER, INSTANCE, 0, 31970) -- 恐惧
34 | module:RegisterDebuff(TIER, INSTANCE, 0, 42201) -- 永恒沉默
35 | module:RegisterDebuff(TIER, INSTANCE, 0, 32014) -- 空气爆裂
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/Blizzard_LookingForGroupUI.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | C.themes["Blizzard_LookingForGroupUI"] = function()
5 | local closeButton = select(3, LFGParentFrame:GetChildren())
6 | if not LFGParentFrame.CloseButton then
7 | LFGParentFrame.CloseButton = closeButton
8 | end
9 | B.ReskinPortraitFrame(LFGParentFrame, 19, -10, -30, 75)
10 | LFGParentFrameIcon:SetAlpha(0)
11 | LFGParentFrameBackground:SetAlpha(0)
12 |
13 | for i = 1, 3 do
14 | B.ReskinDropDown(_G["LFGFrameTypeDropDown"..i])
15 | B.ReskinDropDown(_G["LFGFrameActivityDropDown"..i])
16 |
17 | local bg = _G["LFGSearchBg"..i]
18 | bg:SetTexture("Interface\\Icons\\INV_Misc_QuestionMark")
19 | B.ReskinIcon(bg)
20 | local icon = _G["LFGSearchIcon"..i]
21 | icon:SetAllPoints(bg)
22 | icon:SetTexCoord(.03, .78, .03, .71)
23 | end
24 |
25 | B.ReskinInput(LFGComment)
26 | B.Reskin(LFGFrameClearAllButton)
27 | B.Reskin(LFGFramePostButton)
28 | B.ReskinTab(LFGParentFrameTab1)
29 | B.ReskinTab(LFGParentFrameTab2)
30 |
31 | -- LFM Frame
32 | for i = 1, 4 do
33 | B.StripTextures(_G["LFMFrameColumnHeader"..i])
34 | end
35 |
36 | B.ReskinDropDown(LFMFrameTypeDropDown)
37 | B.ReskinDropDown(LFMFrameActivityDropDown)
38 | B.Reskin(LFMFrameSearchButton)
39 | B.Reskin(LFMFrameSendMessageButton)
40 | B.Reskin(LFMFrameGroupInviteButton)
41 | B.StripTextures(LFMFrameInset)
42 | local bg = B.CreateBDFrame(LFMFrameInset, .25)
43 | bg:SetInside(nil, 2, 2)
44 |
45 | for i = 1, 16 do
46 | _G["LFMFrameButton"..i.."Level"]:SetWidth(24)
47 | end
48 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/AuraWatchList/Priest.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | if DB.MyClass ~= "PRIEST" then return end
6 |
7 | -- 牧师的法术监控
8 | local list = {
9 | ["Player Aura"] = { -- 玩家光环组
10 | {AuraID = 586, UnitID = "player"}, -- 渐隐术
11 | },
12 | ["Target Aura"] = { -- 目标光环组
13 | {AuraID = 25218, UnitID = "target", Caster = "player"}, -- 真言术:盾
14 | {AuraID = 25222, UnitID = "target", Caster = "player"}, -- 恢复
15 | {AuraID = 41635, UnitID = "target", Caster = "player"}, -- 愈合祷言
16 | {AuraID = 25384, UnitID = "target", Caster = "player"}, -- 神圣之火
17 | {AuraID = 15487, UnitID = "target", Caster = "player"}, -- 沉默
18 | {AuraID = 25368, UnitID = "target", Caster = "player"}, -- 暗言术:痛
19 | {AuraID = 25467, UnitID = "target", Caster = "player"}, -- 噬灵瘟疫
20 | {AuraID = 10890, UnitID = "target", Caster = "player"}, -- 心灵尖啸
21 | {AuraID = 34914, UnitID = "target", Caster = "player"}, -- 吸血鬼之触
22 | },
23 | ["Special Aura"] = { -- 玩家重要光环组
24 | {AuraID = 6346, UnitID = "player"}, -- 防恐结界
25 | {AuraID = 10060, UnitID = "player"}, -- 能量灌注
26 | {AuraID = 27827, UnitID = "player"}, -- 救赎之魂
27 | {AuraID = 25218, UnitID = "player"}, -- 真言术:盾
28 | {AuraID = 25222, UnitID = "player"}, -- 恢复
29 | {AuraID = 25429, UnitID = "player"}, -- 渐隐术
30 | {AuraID = 41635, UnitID = "player"}, -- 愈合祷言
31 | },
32 | ["Focus Aura"] = { -- 焦点光环组
33 | },
34 | ["Spell Cooldown"] = { -- 冷却计时组
35 | {SlotID = 13}, -- 饰品1
36 | {SlotID = 14}, -- 饰品2
37 | },
38 | }
39 |
40 | module:AddNewAuraWatch("PRIEST", list)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/Blizzard_TimeManager.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | C.themes["Blizzard_TimeManager"] = function()
5 | TimeManagerGlobe:Hide()
6 | TimeManagerStopwatchCheck:GetNormalTexture():SetTexCoord(.08, .92, .08, .92)
7 | TimeManagerStopwatchCheck:SetCheckedTexture(DB.textures.pushed)
8 | B.CreateBDFrame(TimeManagerStopwatchCheck)
9 |
10 | TimeManagerAlarmHourDropDown:SetWidth(80)
11 | TimeManagerAlarmMinuteDropDown:SetWidth(80)
12 | TimeManagerAlarmAMPMDropDown:SetWidth(90)
13 |
14 | B.ReskinPortraitFrame(TimeManagerFrame)
15 | B.ReskinDropDown(TimeManagerAlarmHourDropDown)
16 | B.ReskinDropDown(TimeManagerAlarmMinuteDropDown)
17 | B.ReskinDropDown(TimeManagerAlarmAMPMDropDown)
18 | B.ReskinInput(TimeManagerAlarmMessageEditBox)
19 | B.ReskinCheck(TimeManagerAlarmEnabledButton)
20 | B.ReskinCheck(TimeManagerMilitaryTimeCheck)
21 | B.ReskinCheck(TimeManagerLocalTimeCheck)
22 |
23 | B.StripTextures(StopwatchFrame)
24 | B.StripTextures(StopwatchTabFrame)
25 | B.SetBD(StopwatchFrame)
26 | B.ReskinClose(StopwatchCloseButton, StopwatchFrame, -2, -2)
27 |
28 | local reset = StopwatchResetButton
29 | reset:GetNormalTexture():SetTexCoord(.25, .75, .27, .75)
30 | reset:SetSize(18, 18)
31 | reset:GetHighlightTexture():SetColorTexture(1, 1, 1, .25)
32 | reset:SetPoint("BOTTOMRIGHT", -5, 7)
33 | local play = StopwatchPlayPauseButton
34 | play:GetNormalTexture():SetTexCoord(.25, .75, .27, .75)
35 | play:SetSize(18, 18)
36 | play:GetHighlightTexture():SetColorTexture(1, 1, 1, .25)
37 | play:SetPoint("RIGHT", reset, "LEFT", -2, 0)
38 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/oUF/oUF.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/RaidFrameAuras/TBC/Party-TBC.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | local TIER = 2
6 | local INSTANCE -- 5人本
7 |
8 | INSTANCE = 540 -- 地狱火堡垒:破碎大厅
9 | module:RegisterDebuff(TIER, INSTANCE, 0, 24099) -- 荒芜诅咒
10 |
11 | INSTANCE = 558 -- 奥金顿:奥金尼地穴
12 | module:RegisterDebuff(TIER, INSTANCE, 0, 24099) -- 荒芜诅咒
13 |
14 | INSTANCE = 556 -- 奥金顿:塞泰克大厅
15 | module:RegisterDebuff(TIER, INSTANCE, 0, 24099) -- 荒芜诅咒
16 |
17 | INSTANCE = 555 -- 奥金顿:暗影迷宫
18 | module:RegisterDebuff(TIER, INSTANCE, 0, 24099) -- 荒芜诅咒
19 |
20 | INSTANCE = 542 -- 地狱火堡垒:鲜血熔炉
21 | module:RegisterDebuff(TIER, INSTANCE, 0, 24099) -- 荒芜诅咒
22 |
23 | INSTANCE = 546 -- 盘牙湖泊:幽暗沼泽
24 | module:RegisterDebuff(TIER, INSTANCE, 0, 24099) -- 荒芜诅咒
25 |
26 | INSTANCE = 545 -- 盘牙湖泊:蒸汽地窟
27 | module:RegisterDebuff(TIER, INSTANCE, 0, 24099) -- 荒芜诅咒
28 |
29 | INSTANCE = 547 -- 盘牙湖泊:奴隶围栏
30 | module:RegisterDebuff(TIER, INSTANCE, 0, 24099) -- 荒芜诅咒
31 |
32 | INSTANCE = 553 -- 风暴要塞:生态船
33 | module:RegisterDebuff(TIER, INSTANCE, 0, 24099) -- 荒芜诅咒
34 |
35 | INSTANCE = 554 -- 风暴要塞:能源舰
36 | module:RegisterDebuff(TIER, INSTANCE, 0, 24099) -- 荒芜诅咒
37 |
38 | INSTANCE = 552 -- 风暴要塞:禁魔监狱
39 | module:RegisterDebuff(TIER, INSTANCE, 0, 24099) -- 荒芜诅咒
40 |
41 | INSTANCE = 557 -- 奥金顿:法力墓穴
42 | module:RegisterDebuff(TIER, INSTANCE, 0, 24099) -- 荒芜诅咒
43 |
44 | INSTANCE = 269 -- 开启黑暗之门
45 | module:RegisterDebuff(TIER, INSTANCE, 0, 24099) -- 荒芜诅咒
46 |
47 | INSTANCE = 560 -- 逃离敦霍尔德
48 | module:RegisterDebuff(TIER, INSTANCE, 0, 24099) -- 荒芜诅咒
49 |
50 | INSTANCE = 543 -- 地狱火堡垒:城墙
51 | module:RegisterDebuff(TIER, INSTANCE, 0, 24099) -- 荒芜诅咒
52 |
53 | INSTANCE = 585 -- 魔导师平台
54 | module:RegisterDebuff(TIER, INSTANCE, 0, 24099) -- 荒芜诅咒
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/ChatBubbles.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | local pairs, GetCVarBool = pairs, GetCVarBool
5 | local C_ChatBubbles_GetAllChatBubbles = C_ChatBubbles.GetAllChatBubbles
6 |
7 | local function reskinChatBubble(chatbubble)
8 | if chatbubble.styled then return end
9 |
10 | local frame = chatbubble:GetChildren()
11 | if frame and not frame:IsForbidden() then
12 | local bg = B.SetBD(frame)
13 | bg:SetScale(UIParent:GetEffectiveScale())
14 | bg:SetInside(frame, 6, 6)
15 |
16 | frame:DisableDrawLayer("BORDER")
17 | frame.Tail:SetAlpha(0)
18 | end
19 |
20 | chatbubble.styled = true
21 | end
22 |
23 | tinsert(C.defaultThemes, function()
24 | if not C.db["Skins"]["BlizzardSkins"] then return end
25 |
26 | local events = {
27 | CHAT_MSG_SAY = "chatBubbles",
28 | CHAT_MSG_YELL = "chatBubbles",
29 | CHAT_MSG_MONSTER_SAY = "chatBubbles",
30 | CHAT_MSG_MONSTER_YELL = "chatBubbles",
31 | CHAT_MSG_PARTY = "chatBubblesParty",
32 | CHAT_MSG_PARTY_LEADER = "chatBubblesParty",
33 | CHAT_MSG_MONSTER_PARTY = "chatBubblesParty",
34 | }
35 |
36 | local bubbleHook = CreateFrame("Frame")
37 | for event in next, events do
38 | bubbleHook:RegisterEvent(event)
39 | end
40 | bubbleHook:SetScript("OnEvent", function(self, event)
41 | if GetCVarBool(events[event]) then
42 | self.elapsed = 0
43 | self:Show()
44 | end
45 | end)
46 |
47 | bubbleHook:SetScript("OnUpdate", function(self, elapsed)
48 | self.elapsed = self.elapsed + elapsed
49 | if self.elapsed > .1 then
50 | for _, chatbubble in pairs(C_ChatBubbles_GetAllChatBubbles()) do
51 | reskinChatBubble(chatbubble)
52 | end
53 | self:Hide()
54 | end
55 | end)
56 | bubbleHook:Hide()
57 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/AuraWatchList/Druid.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | if DB.MyClass ~= "DRUID" then return end
6 |
7 | -- 德鲁伊的法术监控
8 | local list = {
9 | ["Player Aura"] = { -- 玩家光环组
10 | {AuraID = 5215, UnitID = "player"}, -- 潜行
11 | {AuraID = 1850, UnitID = "player"}, -- 急奔
12 | {AuraID = 26992, UnitID = "player"}, -- 荆棘术
13 | },
14 | ["Target Aura"] = { -- 目标光环组
15 | {AuraID = 99, UnitID = "target", Caster = "player"}, -- 夺魂咆哮
16 | {AuraID = 339, UnitID = "target", Caster = "player"}, -- 纠缠根须
17 | {AuraID = 1079, UnitID = "target", Caster = "player"}, -- 割裂
18 | {AuraID = 5211, UnitID = "target", Caster = "player"}, -- 蛮力猛击
19 | {AuraID = 6795, UnitID = "target", Caster = "player"}, -- 低吼
20 | {AuraID = 26980, UnitID = "target", Caster = "player"}, -- 愈合
21 | {AuraID = 26982, UnitID = "target", Caster = "player"}, -- 回春术
22 | {AuraID = 33763, UnitID = "target", Caster = "player"}, -- 生命绽放
23 | {AuraID = 27006, UnitID = "target", Caster = "player"}, -- 突袭
24 | },
25 | ["Special Aura"] = { -- 玩家重要光环组
26 | {AuraID = 5229, UnitID = "player"}, -- 激怒
27 | {AuraID = 9846, UnitID = "player"}, -- 猛虎之怒
28 | {AuraID = 22842, UnitID = "player"}, -- 狂暴回复
29 | {AuraID = 22812, UnitID = "player"}, -- 树皮术
30 | {AuraID = 16870, UnitID = "player"}, -- 节能施法
31 | {AuraID = 26980, UnitID = "player"}, -- 愈合
32 | {AuraID = 26982, UnitID = "player"}, -- 回春术
33 | {AuraID = 33763, UnitID = "player"}, -- 生命绽放
34 | {AuraID = 33357, UnitID = "player"}, -- 急奔
35 | },
36 | ["Focus Aura"] = { -- 焦点光环组
37 | },
38 | ["Spell Cooldown"] = { -- 冷却计时组
39 | {SlotID = 13}, -- 饰品1
40 | {SlotID = 14}, -- 饰品2
41 | },
42 | }
43 |
44 | module:AddNewAuraWatch("DRUID", list)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Misc/AlertFrames.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local M = B:GetModule("Misc")
4 |
5 | local _G = getfenv(0)
6 | local UIParent = _G.UIParent
7 | local GroupLootContainer = _G.GroupLootContainer
8 |
9 | local POSITION, YOFFSET = "TOP", -10
10 | local parentFrame
11 |
12 | function M:GroupLootContainer_UpdateAnchor()
13 | local y = select(2, parentFrame:GetCenter())
14 | local screenHeight = UIParent:GetTop()
15 | if y > screenHeight/2 then
16 | POSITION = "TOP"
17 | YOFFSET = -10
18 | else
19 | POSITION = "BOTTOM"
20 | YOFFSET = 10
21 | end
22 |
23 | GroupLootContainer:ClearAllPoints()
24 | GroupLootContainer:SetPoint(POSITION, parentFrame)
25 | end
26 |
27 | function M:UpdatGroupLootContainer()
28 | local lastIdx = nil
29 |
30 | for i = 1, self.maxIndex do
31 | local frame = self.rollFrames[i]
32 | if frame then
33 | frame:ClearAllPoints()
34 | frame:SetPoint("CENTER", self, POSITION, 0, self.reservedSize * (i-1 + 0.5) * YOFFSET/10)
35 | lastIdx = i
36 | end
37 | end
38 |
39 | if lastIdx then
40 | self:SetHeight(self.reservedSize * lastIdx)
41 | self:Show()
42 | else
43 | self:Hide()
44 | end
45 | end
46 |
47 | function M:AlertFrame_Setup()
48 | parentFrame = CreateFrame("Frame", nil, UIParent)
49 | parentFrame:SetSize(200, 30)
50 | B.Mover(parentFrame, L["AlertFrames"], "AlertFrames", {"TOP", UIParent, 0, -40})
51 |
52 | GroupLootContainer:EnableMouse(false)
53 | GroupLootContainer.ignoreFramePositionManager = true
54 |
55 | M:GroupLootContainer_UpdateAnchor()
56 | hooksecurefunc("GroupLootFrame_OpenNewFrame", M.GroupLootContainer_UpdateAnchor)
57 | hooksecurefunc("GroupLootContainer_Update", M.UpdatGroupLootContainer)
58 | end
59 | M:RegisterMisc("AlertFrame", M.AlertFrame_Setup)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/BattlefieldFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | -- BattlefieldFrame
6 | B.ReskinPortraitFrame(BattlefieldFrame, 15, -15, -35, 73)
7 | B.ReskinScroll(BattlefieldListScrollFrameScrollBar)
8 | B.Reskin(BattlefieldFrameJoinButton)
9 | B.Reskin(BattlefieldFrameCancelButton)
10 | B.Reskin(BattlefieldFrameGroupJoinButton)
11 | BattlefieldFrameZoneDescription:SetTextColor(1, 1, 1)
12 |
13 | -- WorldStateScoreFrame
14 | B.ReskinPortraitFrame(WorldStateScoreFrame, 13, -15, -108, 70)
15 | B.ReskinScroll(WorldStateScoreScrollFrameScrollBar)
16 | for i = 1, 3 do
17 | B.ReskinTab(_G["WorldStateScoreFrameTab"..i])
18 | end
19 | B.Reskin(WorldStateScoreFrameLeaveButton)
20 |
21 | -- ArenaFrame
22 | B.ReskinPortraitFrame(ArenaFrame, 15, -15, -35, 73)
23 | B.Reskin(ArenaFrameJoinButton)
24 | B.Reskin(ArenaFrameCancelButton)
25 | B.Reskin(ArenaFrameGroupJoinButton)
26 |
27 | -- Temp fix for ArenaFrame label
28 | local relF, parent, relT, x, y = ArenaFrameFrameLabel:GetPoint()
29 | if parent == BattlefieldFrame then
30 | ArenaFrameFrameLabel:SetPoint(relF, ArenaFrame, relT, x, y)
31 | end
32 |
33 | -- ArenaRegistrarFrame
34 | ArenaAvailableServicesText:SetTextColor(1, 1, 1)
35 | ArenaAvailableServicesText:SetShadowColor(0, 0, 0)
36 |
37 | B.ReskinPortraitFrame(ArenaRegistrarFrame, 15, -15, -30, 65)
38 | B.StripTextures(ArenaRegistrarGreetingFrame)
39 | ArenaRegistrarFrameEditBox:SetHeight(20)
40 | ArenaRegistrarFrameEditBox:DisableDrawLayer("BACKGROUND")
41 | B.ReskinEditBox(ArenaRegistrarFrameEditBox)
42 | B.Reskin(ArenaRegistrarFrameGoodbyeButton)
43 | B.Reskin(ArenaRegistrarFramePurchaseButton)
44 | B.Reskin(ArenaRegistrarFrameCancelButton)
45 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/cargBags/mixins-add/itemkeys/basic.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | LICENSE
3 | cargBags: An inventory framework addon for World of Warcraft
4 |
5 | Copyright (C) 2010 Constantin "Cargor" Schomburg
6 |
7 | cargBags is free software; you can redistribute it and/or
8 | modify it under the terms of the GNU General Public License
9 | as published by the Free Software Foundation; either version 2
10 | of the License, or (at your option) any later version.
11 |
12 | cargBags is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | GNU General Public License for more details.
16 |
17 | You should have received a copy of the GNU General Public License
18 | along with cargBags; if not, write to the Free Software
19 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 |
21 | DESCRIPTION:
22 | A few simple item keys, mostly ones resulting through pattern matching
23 | ]]
24 |
25 | local _, ns = ...
26 | local cargBags = ns.cargBags
27 |
28 | -- Returns the numeric item id (12345)
29 | cargBags.itemKeys["id"] = function(i)
30 | return i.link and tonumber(i.link:match("item:(%d+)"))
31 | end
32 |
33 | -- Returns the type of the parent bag
34 | cargBags.itemKeys["bagType"] = function(i)
35 | return select(2, GetContainerNumFreeSlots(i.bagID))
36 | end
37 |
38 | -- Returns the item string (12345:0:0:0)
39 | cargBags.itemKeys["string"] = function(i)
40 | return i.link and i.link:match("item:(%d+:%d+:%d+:%d+)")
41 | end
42 |
43 | cargBags.itemKeys["stats"] = function(i)
44 | if(not i.link or not GetItemStats) then return end
45 | local stats = GetItemStats(i.link)
46 | i.stats = stats
47 | return stats
48 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/Blizzard_ItemSocketingUI.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | C.themes["Blizzard_ItemSocketingUI"] = function()
5 | local GemTypeInfo = {
6 | Yellow = {r=0.97, g=0.82, b=0.29},
7 | Red = {r=1, g=0.47, b=0.47},
8 | Blue = {r=0.47, g=0.67, b=1},
9 | Hydraulic = {r=1, g=1, b=1},
10 | Cogwheel = {r=1, g=1, b=1},
11 | Meta = {r=1, g=1, b=1},
12 | Prismatic = {r=1, g=1, b=1},
13 | PunchcardRed = {r=1, g=0.47, b=0.47},
14 | PunchcardYellow = {r=0.97, g=0.82, b=0.29},
15 | PunchcardBlue = {r=0.47, g=0.67, b=1},
16 | }
17 |
18 | for i = 1, MAX_NUM_SOCKETS do
19 | local bu = _G["ItemSocketingSocket"..i]
20 | local shine = _G["ItemSocketingSocket"..i.."Shine"]
21 |
22 | _G["ItemSocketingSocket"..i.."BracketFrame"]:Hide()
23 | _G["ItemSocketingSocket"..i.."Background"]:SetAlpha(0)
24 | B.StripTextures(bu)
25 |
26 | bu:SetPushedTexture("")
27 | bu:GetHighlightTexture():SetColorTexture(1, 1, 1, .25)
28 | bu.icon:SetTexCoord(unpack(DB.TexCoord))
29 |
30 | shine:ClearAllPoints()
31 | shine:SetPoint("TOPLEFT", bu)
32 | shine:SetPoint("BOTTOMRIGHT", bu, 1, 0)
33 |
34 | bu.bg = B.CreateBDFrame(bu, .25)
35 | end
36 |
37 | hooksecurefunc("ItemSocketingFrame_Update", function()
38 | for i = 1, MAX_NUM_SOCKETS do
39 | local color = GemTypeInfo[GetSocketTypes(i)]
40 | _G["ItemSocketingSocket"..i].bg:SetBackdropBorderColor(color.r, color.g, color.b)
41 | end
42 |
43 | ItemSocketingDescription:HideBackdrop()
44 | end)
45 |
46 | if not ItemSocketingFrame.CloseButton then
47 | ItemSocketingFrame.CloseButton = ItemSocketingCloseButton
48 | end
49 | B.ReskinPortraitFrame(ItemSocketingFrame, 10, -10, 0, 15)
50 | B.CreateBDFrame(ItemSocketingScrollFrame, .25)
51 | B.Reskin(ItemSocketingSocketButton)
52 | B.ReskinScroll(ItemSocketingScrollFrameScrollBar)
53 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/FrameXML.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/RaidFrameAuras/TBC/SunwellPlateau.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | local TIER = 2
6 | local INSTANCE = 580 -- 太阳之井
7 |
8 | -- 卡雷苟斯
9 | module:RegisterDebuff(TIER, INSTANCE, 0, 45034) -- 无边苦痛诅咒
10 | module:RegisterDebuff(TIER, INSTANCE, 0, 45032) -- 无边苦痛诅咒
11 | module:RegisterDebuff(TIER, INSTANCE, 0, 46021) -- 灵魂世界
12 | module:RegisterDebuff(TIER, INSTANCE, 0, 44867) -- 灵魂疲惫
13 | module:RegisterDebuff(TIER, INSTANCE, 0, 45029) -- 腐蚀打击
14 |
15 | -- 布鲁塔卢斯
16 | module:RegisterDebuff(TIER, INSTANCE, 0, 45150) -- 流星猛击
17 | module:RegisterDebuff(TIER, INSTANCE, 0, 46394) -- 燃烧
18 | module:RegisterDebuff(TIER, INSTANCE, 0, 45185) -- 践踏
19 |
20 | -- 菲米丝
21 | module:RegisterDebuff(TIER, INSTANCE, 0, 45402) -- 恶魔蒸汽
22 | module:RegisterDebuff(TIER, INSTANCE, 0, 47002) -- 毒气
23 | module:RegisterDebuff(TIER, INSTANCE, 0, 45855) -- 毒气新星
24 | module:RegisterDebuff(TIER, INSTANCE, 0, 45866) -- 腐蚀
25 |
26 | -- 艾瑞达双子
27 | module:RegisterDebuff(TIER, INSTANCE, 0, 46771) -- 烈焰灼热
28 | module:RegisterDebuff(TIER, INSTANCE, 0, 45348) -- 烈焰触摸
29 | module:RegisterDebuff(TIER, INSTANCE, 0, 45342) -- 燃烧
30 | module:RegisterDebuff(TIER, INSTANCE, 0, 45271) -- 黑暗打击
31 | module:RegisterDebuff(TIER, INSTANCE, 0, 45345) -- 黑暗烈焰
32 | module:RegisterDebuff(TIER, INSTANCE, 0, 45347) -- 黑暗触摸
33 |
34 | -- 穆鲁
35 | module:RegisterDebuff(TIER, INSTANCE, 0, 46161) -- 虚空冲击
36 | module:RegisterDebuff(TIER, INSTANCE, 0, 45996) -- 黑暗
37 |
38 | -- 基尔加丹
39 | module:RegisterDebuff(TIER, INSTANCE, 0, 45641) -- 火焰之花
40 | module:RegisterDebuff(TIER, INSTANCE, 0, 45740) -- 烈焰之刺
41 | module:RegisterDebuff(TIER, INSTANCE, 0, 45741) -- 烈焰之刺
42 | module:RegisterDebuff(TIER, INSTANCE, 0, 45737) -- 烈焰之刺
43 | module:RegisterDebuff(TIER, INSTANCE, 0, 45885) -- 暗影之刺
44 | module:RegisterDebuff(TIER, INSTANCE, 0, 45770) -- 暗影箭雨
45 | module:RegisterDebuff(TIER, INSTANCE, 0, 45442) -- 灵魂鞭笞
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/AuraWatchList/Hunter.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | if DB.MyClass ~= "HUNTER" then return end
6 |
7 | -- 猎人的法术监控
8 | local list = {
9 | ["Player Aura"] = { -- 玩家光环组
10 | {AuraID = 1539, UnitID = "pet"}, -- 喂养宠物
11 | {AuraID = 3662, UnitID = "pet"}, -- 治疗宠物
12 | {AuraID = 5118, UnitID = "player"}, -- 猎豹守护
13 | {AuraID = 13161, UnitID = "player"}, -- 野兽守护
14 | {AuraID = 13163, UnitID = "player"}, -- 灵猴守护
15 | {AuraID = 27045, UnitID = "player"}, -- 野性守护
16 | {AuraID = 34074, UnitID = "player"}, -- 蝰蛇守护
17 | },
18 | ["Target Aura"] = { -- 目标光环组
19 | {AuraID = 14325, UnitID = "target"}, -- 猎人印记
20 | {AuraID = 1513, UnitID = "target", Caster = "player"}, -- 恐吓野兽
21 | {AuraID = 5116, UnitID = "target", Caster = "player"}, -- 震荡射击
22 | {AuraID = 27016, UnitID = "target", Caster = "player"}, -- 毒蛇钉刺
23 | {AuraID = 27018, UnitID = "target", Caster = "player"}, -- 蝰蛇钉刺
24 | {AuraID = 19386, UnitID = "target", Caster = "player"}, -- 翼龙钉刺
25 | {AuraID = 14268, UnitID = "target", Caster = "player"}, -- 摔绊
26 | {AuraID = 13810, UnitID = "target", Caster = "player"}, -- 冰霜陷阱
27 | {AuraID = 14309, UnitID = "target", Caster = "player"}, -- 冰冻陷阱
28 | {AuraID = 27024, UnitID = "target", Caster = "player"}, -- 献祭陷阱
29 | {AuraID = 27026, UnitID = "target", Caster = "player"}, -- 爆炸陷阱
30 | {AuraID = 24394, UnitID = "target", Caster = "pet"}, -- 胁迫
31 | },
32 | ["Special Aura"] = { -- 玩家重要光环组
33 | {AuraID = 3045, UnitID = "player"}, -- 急速射击
34 | {AuraID = 6150, UnitID = "player"}, -- 快速射击
35 | {AuraID = 19574, UnitID = "pet"}, -- 狂野怒火
36 | {AuraID = 19577, UnitID = "pet"}, -- 胁迫
37 | },
38 | ["Focus Aura"] = { -- 焦点光环组
39 | },
40 | ["Spell Cooldown"] = { -- 冷却计时组
41 | {SlotID = 13}, -- 饰品1
42 | {SlotID = 14}, -- 饰品2
43 | },
44 | }
45 |
46 | module:AddNewAuraWatch("HUNTER", list)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Auras/Lumos/Priest.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local A = B:GetModule("Auras")
4 |
5 | if DB.MyClass ~= "PRIEST" then return end
6 |
7 | local function UpdateCooldown(button, spellID, texture)
8 | return A:UpdateCooldown(button, spellID, texture)
9 | end
10 |
11 | local function UpdateBuff(button, spellID, auraID, cooldown, glow)
12 | return A:UpdateAura(button, "player", auraID, "HELPFUL", spellID, cooldown, glow)
13 | end
14 |
15 | local function UpdateDebuff(button, spellID, auraID)
16 | return A:UpdateAura(button, "target", auraID, "HARMFUL", spellID, false, "END")
17 | end
18 |
19 | function A:ChantLumos(self)
20 | if GetSpecialization() == 1 then
21 | UpdateCooldown(self.bu[1], 47540, true)
22 | UpdateCooldown(self.bu[2], 194509, true)
23 | UpdateBuff(self.bu[3], 47536, 47536, true, true)
24 | UpdateBuff(self.bu[4], 33206, 33206, true, true)
25 | UpdateCooldown(self.bu[5], 32375, true)
26 | elseif GetSpecialization() == 2 then
27 | UpdateCooldown(self.bu[1], 2050, true)
28 | UpdateCooldown(self.bu[2], 47788, true)
29 | UpdateBuff(self.bu[3], 64843, 64843, true, true)
30 | UpdateBuff(self.bu[4], 64901, 64901, true, true)
31 | UpdateCooldown(self.bu[5], 32375, true)
32 | elseif GetSpecialization() == 3 then
33 | UpdateDebuff(self.bu[1], 589, 589)
34 | UpdateDebuff(self.bu[2], 34914, 34914)
35 |
36 | do
37 | local button = self.bu[3]
38 | if IsPlayerSpell(205351) then
39 | UpdateCooldown(button, 205351, true)
40 | else
41 | UpdateCooldown(button, 8092, true)
42 | end
43 | end
44 |
45 | do
46 | local button = self.bu[4]
47 | UpdateCooldown(button, 228260, true)
48 | if IsUsableSpell(228260) then
49 | button.Icon:SetDesaturated(false)
50 | B.ShowOverlayGlow(button.glowFrame)
51 | else
52 | button.Icon:SetDesaturated(true)
53 | B.HideOverlayGlow(button.glowFrame)
54 | end
55 | end
56 |
57 | UpdateBuff(self.bu[5], 47585, 47585, true, true)
58 | end
59 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/cargBags/mixins-add/itemkeys/tooltip.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | LICENSE
3 | cargBags: An inventory framework addon for World of Warcraft
4 |
5 | Copyright (C) 2010 Constantin "Cargor" Schomburg
6 |
7 | cargBags is free software; you can redistribute it and/or
8 | modify it under the terms of the GNU General Public License
9 | as published by the Free Software Foundation; either version 2
10 | of the License, or (at your option) any later version.
11 |
12 | cargBags is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | GNU General Public License for more details.
16 |
17 | You should have received a copy of the GNU General Public License
18 | along with cargBags; if not, write to the Free Software
19 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 |
21 | DESCRIPTION:
22 | Item keys which require tooltip parsing to work
23 | ]]
24 | local _, ns = ...
25 | local B, C, L, DB = unpack(ns)
26 | local cargBags = ns.cargBags
27 |
28 | local bindTypeToString = {
29 | [ITEM_BIND_ON_USE] = "equip",
30 | [ITEM_BIND_ON_EQUIP] = "equip",
31 | [ITEM_BIND_ON_PICKUP] = "pickup",
32 | [ITEM_SOULBOUND] = "soul",
33 | [ITEM_BIND_QUEST] = "quest",
34 | [ITEM_ACCOUNTBOUND] = "account",
35 | [ITEM_BIND_TO_ACCOUNT] = "account",
36 | [ITEM_BNETACCOUNTBOUND] = "account",
37 | }
38 |
39 | cargBags.itemKeys["bindOn"] = function(i)
40 | if not i.link then return end
41 |
42 | local tip = B.ScanTip
43 | if not tip then return end
44 |
45 | tip:SetOwner(UIParent, "ANCHOR_NONE")
46 | tip:SetBagItem(i.bagID, i.slotID)
47 |
48 | for j = 2, 5 do
49 | local line = _G["NDui_ScanTooltipTextLeft"..j]
50 | local lineText = line and line:GetText()
51 | if not lineText then break end
52 |
53 | local bindOn = bindTypeToString[lineText]
54 | if bindOn then
55 | i.bindOn = bindOn
56 | return bindOn
57 | end
58 | end
59 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/TradeFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | TradePlayerEnchantInset:Hide()
6 | TradePlayerItemsInset:Hide()
7 | TradeRecipientEnchantInset:Hide()
8 | TradeRecipientItemsInset:Hide()
9 | TradePlayerInputMoneyInset:Hide()
10 | TradeRecipientMoneyInset:Hide()
11 | TradeRecipientBG:Hide()
12 | TradeRecipientMoneyBg:Hide()
13 | TradeRecipientBotLeftCorner:Hide()
14 | TradeRecipientLeftBorder:Hide()
15 | select(4, TradePlayerItem7:GetRegions()):Hide()
16 | select(4, TradeRecipientItem7:GetRegions()):Hide()
17 |
18 | B.ReskinPortraitFrame(TradeFrame)
19 | B.Reskin(TradeFrameTradeButton)
20 | B.Reskin(TradeFrameCancelButton)
21 | B:UpdateMoneyDisplay(TradePlayerInputMoneyFrameGold, TradePlayerInputMoneyFrameSilver, TradePlayerInputMoneyFrameCopper)
22 |
23 | local function reskinButton(bu)
24 | bu:SetNormalTexture("")
25 | bu:SetPushedTexture("")
26 | local hl = bu:GetHighlightTexture()
27 | hl:SetColorTexture(1, 1, 1, .25)
28 | hl:SetInside()
29 | bu.icon:SetTexCoord(unpack(DB.TexCoord))
30 | bu.icon:SetInside()
31 | bu.bg = B.CreateBDFrame(bu.icon, .25)
32 | B.ReskinIconBorder(bu.IconBorder)
33 | end
34 |
35 | for i = 1, MAX_TRADE_ITEMS do
36 | _G["TradePlayerItem"..i.."SlotTexture"]:Hide()
37 | _G["TradePlayerItem"..i.."NameFrame"]:Hide()
38 | _G["TradeRecipientItem"..i.."SlotTexture"]:Hide()
39 | _G["TradeRecipientItem"..i.."NameFrame"]:Hide()
40 |
41 | reskinButton(_G["TradePlayerItem"..i.."ItemButton"])
42 | reskinButton(_G["TradeRecipientItem"..i.."ItemButton"])
43 | end
44 |
45 | local tradeHighlights = {
46 | TradeHighlightPlayer,
47 | TradeHighlightPlayerEnchant,
48 | TradeHighlightRecipient,
49 | TradeHighlightRecipientEnchant,
50 | }
51 | for _, highlight in pairs(tradeHighlights) do
52 | B.StripTextures(highlight)
53 | highlight:SetFrameStrata("HIGH")
54 | local bg = B.CreateBDFrame(highlight, 1)
55 | bg:SetBackdropColor(0, 1, 0, .15)
56 | end
57 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/cargBags/base-add/bags.sieve.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | LICENSE
3 | cargBags: An inventory framework addon for World of Warcraft
4 |
5 | Copyright (C) 2010 Constantin "Cargor" Schomburg
6 |
7 | cargBags is free software; you can redistribute it and/or
8 | modify it under the terms of the GNU General Public License
9 | as published by the Free Software Foundation; either version 2
10 | of the License, or (at your option) any later version.
11 |
12 | cargBags is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | GNU General Public License for more details.
16 |
17 | You should have received a copy of the GNU General Public License
18 | along with cargBags; if not, write to the Free Software
19 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 |
21 | DESCRIPTION
22 | The bag sieve just places items in the right containers based on their bagID
23 |
24 | DEPENDENCIES
25 | mixins\parseBags.lua (optional)
26 | ]]
27 | local _, ns = ...
28 | local cargBags = ns.cargBags
29 |
30 | local Implementation = cargBags.classes.Implementation
31 |
32 | --[[!
33 | Returns a container for a specific item [replaces virtual function]
34 | @param item
35 | @returns container
36 | ]]
37 | function Implementation:GetContainerForItem(item)
38 | return item.bagID and self.bagToContainer and self.bagToContainer[item.bagID]
39 | end
40 |
41 | local Container = cargBags.classes.Container
42 |
43 | --[[!
44 | Sets the handled bags for a container
45 | @param bags
46 | ]]
47 | function Container:SetBags(bags)
48 | if(cargBags.ParseBags) then
49 | bags = cargBags:ParseBags(bags)
50 | end
51 |
52 | if(not bags) then return end
53 |
54 | self.implementation.bagToContainer = self.implementation.bagToContainer or {}
55 | local b2c = self.implementation.bagToContainer
56 |
57 | for i, bagID in pairs(bags) do
58 | b2c[bagID] = self
59 | end
60 | end
61 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/Blizzard_EventTrace.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | local function ReskinEventTraceButton(button)
5 | B.Reskin(button)
6 | button.NormalTexture:SetAlpha(0)
7 | button.MouseoverOverlay:SetAlpha(0)
8 | end
9 |
10 | local function reskinScrollChild(self)
11 | for i = 1, self.ScrollTarget:GetNumChildren() do
12 | local child = select(i, self.ScrollTarget:GetChildren())
13 | local hideButton = child and child.HideButton
14 | if hideButton and not hideButton.styled then
15 | B.ReskinClose(hideButton)
16 | hideButton:ClearAllPoints()
17 | hideButton:SetPoint("LEFT", 3, 0)
18 |
19 | local checkButton = child.CheckButton
20 | if checkButton then
21 | B.ReskinCheck(checkButton)
22 | checkButton:SetSize(22, 22)
23 | end
24 |
25 | hideButton.styled = true
26 | end
27 | end
28 | end
29 |
30 | local function reskinEventTraceScrollBox(frame)
31 | frame:DisableDrawLayer("BACKGROUND")
32 | B.CreateBDFrame(frame, .25)
33 | hooksecurefunc(frame, "Update", reskinScrollChild)
34 | end
35 |
36 | local function ReskinEventTraceFrame(frame)
37 | reskinEventTraceScrollBox(frame.ScrollBox)
38 | B.ReskinTrimScroll(frame.ScrollBar)
39 | end
40 |
41 | C.themes["Blizzard_EventTrace"] = function()
42 | B.ReskinPortraitFrame(EventTrace)
43 |
44 | local subtitleBar = EventTrace.SubtitleBar
45 | B.ReskinFilterButton(subtitleBar.OptionsDropDown)
46 |
47 | local logBar = EventTrace.Log.Bar
48 | local filterBar = EventTrace.Filter.Bar
49 | B.ReskinEditBox(logBar.SearchBox)
50 |
51 | ReskinEventTraceFrame(EventTrace.Log.Events)
52 | ReskinEventTraceFrame(EventTrace.Log.Search)
53 | ReskinEventTraceFrame(EventTrace.Filter)
54 |
55 | local buttons = {
56 | subtitleBar.ViewLog,
57 | subtitleBar.ViewFilter,
58 | logBar.DiscardAllButton,
59 | logBar.PlaybackButton,
60 | logBar.MarkButton,
61 | filterBar.DiscardAllButton,
62 | filterBar.UncheckAllButton,
63 | filterBar.CheckAllButton,
64 | }
65 | for _, button in pairs(buttons) do
66 | ReskinEventTraceButton(button)
67 | end
68 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Misc/Focuser.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local oUF = ns.oUF
4 | local M = B:GetModule("Misc")
5 |
6 | local _G = getfenv(0)
7 | local next, strmatch = next, string.match
8 | local InCombatLockdown = InCombatLockdown
9 |
10 | local modifier = "shift" -- shift, alt or ctrl
11 | local mouseButton = "1" -- 1 = left, 2 = right, 3 = middle, 4 and 5 = thumb buttons if there are any
12 | local pending = {}
13 |
14 | function M:Focuser_Setup()
15 | if not self or self.focuser then return end
16 | if self:GetName() and strmatch(self:GetName(), "oUF_NPs") then return end
17 |
18 | if not InCombatLockdown() then
19 | self:SetAttribute(modifier.."-type"..mouseButton, "focus")
20 | self.focuser = true
21 | pending[self] = nil
22 | else
23 | pending[self] = true
24 | end
25 | end
26 |
27 | function M:Focuser_CreateFrameHook(name, _, template)
28 | if name and template == "SecureUnitButtonTemplate" then
29 | M.Focuser_Setup(_G[name])
30 | end
31 | end
32 |
33 | function M.Focuser_OnEvent(event)
34 | if event == "PLAYER_REGEN_ENABLED" then
35 | if next(pending) then
36 | for frame in next, pending do
37 | M.Focuser_Setup(frame)
38 | end
39 | end
40 | else
41 | for _, object in next, oUF.objects do
42 | if not object.focuser then
43 | M.Focuser_Setup(object)
44 | end
45 | end
46 | end
47 | end
48 |
49 | function M:Focuser()
50 | if not C.db["Misc"]["Focuser"] then return end
51 |
52 | -- Keybinding override so that models can be shift/alt/ctrl+clicked
53 | local f = CreateFrame("CheckButton", "FocuserButton", UIParent, "SecureActionButtonTemplate")
54 | f:SetAttribute("type1", "macro")
55 | f:SetAttribute("macrotext", "/focus mouseover")
56 | SetOverrideBindingClick(FocuserButton, true, modifier.."-BUTTON"..mouseButton, "FocuserButton")
57 |
58 | hooksecurefunc("CreateFrame", M.Focuser_CreateFrameHook)
59 | M:Focuser_OnEvent()
60 | B:RegisterEvent("PLAYER_REGEN_ENABLED", M.Focuser_OnEvent)
61 | B:RegisterEvent("GROUP_ROSTER_UPDATE", M.Focuser_OnEvent)
62 | end
63 | M:RegisterMisc("Focuser", M.Focuser)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/ActionBar/Bars/Leave_vehicle.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local Bar = B:GetModule("Actionbar")
4 |
5 | local _G = _G
6 | local tinsert = tinsert
7 | local UnitOnTaxi, TaxiRequestEarlyLanding, VehicleExit = UnitOnTaxi, TaxiRequestEarlyLanding, VehicleExit
8 | local cfg = C.Bars.leave_vehicle
9 | local padding = C.Bars.padding
10 |
11 | function Bar:UpdateVehicleButton()
12 | local frame = _G["NDui_ActionBarExit"]
13 | if not frame then return end
14 |
15 | local size = C.db["Actionbar"]["VehButtonSize"]
16 | local framSize = size + 2*padding
17 | frame.buttons[1]:SetSize(size, size)
18 | frame:SetSize(framSize, framSize)
19 | frame.mover:SetSize(framSize, framSize)
20 | end
21 |
22 | function Bar:CreateLeaveVehicle()
23 | local buttonList = {}
24 |
25 | local frame = CreateFrame("Frame", "NDui_ActionBarExit", UIParent)
26 | frame.mover = B.Mover(frame, L["LeaveVehicle"], "LeaveVehicle", {"BOTTOM", UIParent, "BOTTOM", 320, 100})
27 |
28 | local button = CreateFrame("CheckButton", "NDui_LeaveVehicleButton", frame, "ActionButtonTemplate")
29 | tinsert(buttonList, button)
30 | button:SetPoint("BOTTOMLEFT", frame, padding, padding)
31 | button:RegisterForClicks("AnyUp")
32 | button.icon:SetTexture("INTERFACE\\VEHICLES\\UI-Vehicles-Button-Exit-Up")
33 | button.icon:SetTexCoord(.216, .784, .216, .784)
34 | button.icon:SetDrawLayer("ARTWORK")
35 | button.icon.__lockdown = true
36 |
37 | hooksecurefunc("MainMenuBarVehicleLeaveButton_Update", function()
38 | if UnitOnTaxi("player") then
39 | button:Show()
40 | else
41 | button:Hide()
42 | button:SetChecked(false)
43 | end
44 | end)
45 |
46 | button:SetScript("OnClick", function()
47 | if UnitOnTaxi("player") then
48 | TaxiRequestEarlyLanding()
49 | else
50 | VehicleExit()
51 | end
52 | button:SetChecked(true)
53 | end)
54 | button:SetScript("OnEnter", MainMenuBarVehicleLeaveButton_OnEnter)
55 | button:SetScript("OnLeave", B.HideTooltip)
56 |
57 | frame.buttons = buttonList
58 |
59 | if cfg.fader then
60 | Bar.CreateButtonFrameFader(frame, buttonList, cfg.fader)
61 | end
62 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Core/Changelog.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | if DB.Client ~= "zhCN" then return end
4 |
5 | local strsplit, pairs = string.split, pairs
6 |
7 | local hx = {
8 | "界面美化更新;",
9 | "支持对CodexLite等插件的美化;",
10 | "更新SW部分副本减益;",
11 | "更新团队框体减益指示器忽略列表;",
12 | "团队框体现在始终按下即选中;",
13 | "优化信息条对背包剩余栏位的监控;",
14 | "添加选项以启用聊天的系统字体路径;",
15 | "LibHealComm更新到v102;",
16 | "在交易及商人页面显示装备等级;",
17 | "简易战斗信息添加卷轴模式;",
18 | "按住CTRL键滚动小地图可以调整音量;",
19 | "姓名板添加特定减益高亮功能;",
20 | "提高地图相关默认图标的层级;",
21 | "重做背包偏好设置分类,上限5组;",
22 | "|cffff0000优化设置的导入导出,不再支持旧版本的数据;|r",
23 | "控制台及本地文本更新。",
24 | }
25 |
26 | local f
27 | local function changelog()
28 | if f then f:Show() return end
29 |
30 | local majorVersion = gsub(DB.Version, "%.%d+$", ".0")
31 |
32 | f = CreateFrame("Frame", "NDuiChangeLog", UIParent)
33 | f:SetPoint("CENTER")
34 | f:SetFrameStrata("HIGH")
35 | B.CreateMF(f)
36 | B.SetBD(f)
37 | B.CreateFS(f, 18, majorVersion.." "..L["Changelog"], true, "TOP", 0, -10)
38 | B.CreateWatermark(f)
39 |
40 | local ll = B.SetGradient(f, "H", .7, .7, .7, 0, .5, 100, C.mult)
41 | ll:SetPoint("TOP", -50, -35)
42 | local lr = B.SetGradient(f, "H", .7, .7, .7, .5, 0, 100, C.mult)
43 | lr:SetPoint("TOP", 50, -35)
44 |
45 | local offset = 0
46 | for n, t in pairs(hx) do
47 | B.CreateFS(f, 14, n..": "..t, false, "TOPLEFT", 15, -(50 + offset))
48 | offset = offset + 24
49 | end
50 | f:SetSize(480, 60 + offset)
51 | local close = B.CreateButton(f, 16, 16, true, DB.closeTex)
52 | close:SetPoint("TOPRIGHT", -10, -10)
53 | close:SetScript("OnClick", function() f:Hide() end)
54 | end
55 |
56 | local function compareToShow(event)
57 | if NDui_Tutorial then return end
58 |
59 | local old1, old2 = strsplit(".", NDuiADB["Changelog"].Version or "")
60 | local cur1, cur2 = strsplit(".", DB.Version)
61 | if old1 ~= cur1 or old2 ~= cur2 then
62 | changelog()
63 | NDuiADB["Changelog"].Version = DB.Version
64 | end
65 |
66 | B:UnregisterEvent(event, compareToShow)
67 | end
68 | B:RegisterEvent("PLAYER_ENTERING_WORLD", compareToShow)
69 |
70 | SlashCmdList["NDUICHANGELOG"] = changelog
71 | SLASH_NDUICHANGELOG1 = "/ncl"
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/cargBags/mixins-add/itemkeys/equipSets.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | cargBags: An inventory framework addon for World of Warcraft
3 |
4 | Copyright (C) 2010 Constantin "Cargor" Schomburg
5 |
6 | cargBags is free software; you can redistribute it and/or
7 | modify it under the terms of the GNU General Public License
8 | as published by the Free Software Foundation; either version 2
9 | of the License, or (at your option) any later version.
10 |
11 | cargBags is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with cargBags; if not, write to the Free Software
18 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 |
20 | DESCRIPTION
21 | Item keys for the Blizz equipment sets
22 |
23 | DEPENDENCIES
24 | mixins-add/itemkeys/basic.lua
25 | ]]
26 | local _, ns = ...
27 | local cargBags = ns.cargBags
28 |
29 | local ItemKeys = cargBags.itemKeys
30 |
31 | local setItems
32 |
33 | local function initUpdater()
34 | local function updateSets()
35 | setItems = setItems or {}
36 | for k in pairs(setItems) do setItems[k] = nil end
37 |
38 | for setID = 1, GetNumEquipmentSets() do
39 | local name = GetEquipmentSetInfo(setID)
40 | local items = GetEquipmentSetItemIDs(name)
41 |
42 | for _, id in pairs(items) do
43 | setItems[id] = setID
44 | end
45 | end
46 | end
47 |
48 | local updater = CreateFrame("Frame")
49 | updater:RegisterEvent("EQUIPMENT_SETS_CHANGED")
50 | updater:RegisterEvent("PLAYER_ALIVE")
51 | updater:SetScript("OnEvent", function()
52 | updateSets()
53 | cargBags:FireEvent("BAG_UPDATE")
54 | end)
55 |
56 | updateSets()
57 | end
58 |
59 | ItemKeys["setID"] = function(i)
60 | if(not setItems) then initUpdater() end
61 | return setItems[i.id]
62 | end
63 |
64 | ItemKeys["set"] = function(i)
65 | local setID = i.setID
66 | return setID and GetEquipmentSetInfo(setID)
67 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/Blizzard_InspectUI.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | C.themes["Blizzard_InspectUI"] = function()
5 | B.StripTextures(InspectModelFrame, true)
6 |
7 | -- Character
8 | local slots = {
9 | "Head", "Neck", "Shoulder", "Shirt", "Chest", "Waist", "Legs", "Feet", "Wrist",
10 | "Hands", "Finger0", "Finger1", "Trinket0", "Trinket1", "Back", "MainHand",
11 | "SecondaryHand", "Tabard", "Ranged",
12 | }
13 |
14 | for i = 1, #slots do
15 | local slot = _G["Inspect"..slots[i].."Slot"]
16 |
17 | B.StripTextures(slot)
18 | slot:SetNormalTexture("")
19 | slot:SetPushedTexture("")
20 | slot:GetHighlightTexture():SetColorTexture(1, 1, 1, .25)
21 | slot.icon:SetTexCoord(.08, .92, .08, .92)
22 | slot.bg = B.CreateBDFrame(slot, .25)
23 | end
24 |
25 | hooksecurefunc("InspectPaperDollItemSlotButton_Update", function(button)
26 | local icon = button.icon
27 | if icon then icon:SetShown(button.hasItem) end
28 | end)
29 |
30 | B.ReskinPortraitFrame(InspectFrame, 15, -15, -35, 73)
31 | B.StripTextures(InspectPaperDollFrame)
32 |
33 | for i = 1, 3 do
34 | B.ReskinTab(_G["InspectFrameTab"..i])
35 | end
36 |
37 | B.ReskinRotationButtons(InspectModelFrame)
38 |
39 | -- PVP,
40 | B.StripTextures(InspectPVPFrame)
41 |
42 | for i = 1, 3 do
43 | local tName = "InspectPVPTeam"..i
44 | B.StripTextures(_G[tName])
45 | B.CreateBDFrame(_G[tName.."Background"], .25)
46 | end
47 |
48 | -- Talent
49 | B.StripTextures(InspectTalentFrame)
50 | B.Reskin(InspectTalentFrameCancelButton)
51 | B.ReskinScroll(InspectTalentFrameScrollFrameScrollBar)
52 | if InspectTalentFrameCloseButton then
53 | InspectTalentFrameCloseButton:Hide() -- should be removed by blizzard in future builds
54 | end
55 |
56 | for i = 1, 3 do
57 | B.ReskinTab(_G["InspectTalentFrameTab"..i])
58 | end
59 |
60 | for i = 1, MAX_NUM_TALENTS do
61 | local talent = _G["InspectTalentFrameTalent"..i]
62 | local icon = _G["InspectTalentFrameTalent"..i.."IconTexture"]
63 | if talent then
64 | B.StripTextures(talent)
65 | icon:SetTexCoord(.08, .92, .08, .92)
66 | B.CreateBDFrame(icon)
67 | end
68 | end
69 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/cargBags/mixins/locale.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | LICENSE
3 | cargBags: An inventory framework addon for World of Warcraft
4 |
5 | Copyright (C) 2010 Constantin "Cargor" Schomburg
6 |
7 | cargBags is free software; you can redistribute it and/or
8 | modify it under the terms of the GNU General Public License
9 | as published by the Free Software Foundation; either version 2
10 | of the License, or (at your option) any later version.
11 |
12 | cargBags is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | GNU General Public License for more details.
16 |
17 | You should have received a copy of the GNU General Public License
18 | along with cargBags; if not, write to the Free Software
19 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 |
21 | DESCRIPTION
22 | Provides translation-tables for the auction house categories
23 |
24 | USAGE:
25 | local L = cargBags:GetLocalizedNames()
26 | OR local L = Implementation:GetLocalizedNames()
27 |
28 | L[englishName] returns localized name
29 | ]]
30 | local _, ns = ...
31 | local cargBags = ns.cargBags
32 |
33 | local L
34 |
35 | function cargBags:GetLocalizedTypes()
36 | if(L) then return L end
37 |
38 | L = {}
39 |
40 | L["Consumable"] = AUCTION_CATEGORY_CONSUMABLES -- 0
41 | L["Container"] = AUCTION_CATEGORY_CONTAINERS -- 1
42 | L["Weapon"] = AUCTION_CATEGORY_WEAPONS -- 2
43 | L["Gem"] = AUCTION_CATEGORY_GEMS -- 3
44 | L["Armor"] = AUCTION_CATEGORY_ARMOR -- 4
45 | L["Trade Goods"] = AUCTION_CATEGORY_TRADE_GOODS -- 7
46 | L["Item Enchantment"] = AUCTION_CATEGORY_ITEM_ENHANCEMENT -- 8
47 | L["Recipe"] = AUCTION_CATEGORY_RECIPES -- 9
48 | L["Quest"] = AUCTION_CATEGORY_QUEST_ITEMS -- 12
49 | L["Miscellaneous"] = AUCTION_CATEGORY_MISCELLANEOUS -- 15
50 | L["Glyph"] = AUCTION_CATEGORY_GLYPHS -- 16
51 | L["Battle Pets"] = AUCTION_CATEGORY_BATTLE_PETS -- 17
52 | L["WoWToken"] = TOKEN_FILTER_LABEL
53 |
54 | return L
55 | end
56 |
57 | cargBags.classes.Implementation.GetLocalizedNames = cargBags.GetLocalizedNames
58 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/ActionBar/Bars/Bar4.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local Bar = B:GetModule("Actionbar")
4 |
5 | local _G = _G
6 | local tinsert = tinsert
7 | local InCombatLockdown = InCombatLockdown
8 | local cfg = C.Bars.bar4
9 |
10 | function Bar:ToggleBarFader(name)
11 | local frame = _G["NDui_Action"..name]
12 | if not frame then return end
13 |
14 | frame.isDisable = not C.db["Actionbar"][name.."Fader"]
15 | if frame.isDisable then
16 | Bar:StartFadeIn(frame)
17 | else
18 | Bar:StartFadeOut(frame)
19 | end
20 | end
21 |
22 | function Bar:UpdateFrameClickThru()
23 | local showBar4, showBar5
24 |
25 | local function updateClickThru()
26 | _G.NDui_ActionBar4:EnableMouse(showBar4)
27 | _G.NDui_ActionBar5:EnableMouse((not showBar4 and showBar4) or (showBar4 and showBar5))
28 | end
29 |
30 | hooksecurefunc("SetActionBarToggles", function(_, _, bar3, bar4)
31 | showBar4 = not not bar3
32 | showBar5 = not not bar4
33 | if InCombatLockdown() then
34 | B:RegisterEvent("PLAYER_REGEN_ENABLED", updateClickThru)
35 | else
36 | updateClickThru()
37 | end
38 | end)
39 | end
40 |
41 | function Bar:CreateBar4()
42 | local num = NUM_ACTIONBAR_BUTTONS
43 | local buttonList = {}
44 |
45 | local frame = CreateFrame("Frame", "NDui_ActionBar4", UIParent, "SecureHandlerStateTemplate")
46 | frame.mover = B.Mover(frame, L["Actionbar"].."4", "Bar4", {"RIGHT", UIParent, "RIGHT", -1, 0})
47 | Bar.movers[5] = frame.mover
48 |
49 | MultiBarRight:SetParent(frame)
50 | MultiBarRight:EnableMouse(false)
51 | hooksecurefunc(MultiBarRight, "SetScale", function(self, scale, force)
52 | if not force and scale ~= 1 then
53 | self:SetScale(1, true)
54 | end
55 | end)
56 |
57 | for i = 1, num do
58 | local button = _G["MultiBarRightButton"..i]
59 | tinsert(buttonList, button)
60 | tinsert(Bar.buttons, button)
61 | end
62 | frame.buttons = buttonList
63 |
64 | frame.frameVisibility = "[petbattle][overridebar][vehicleui][possessbar,@vehicle,exists][shapeshift] hide; show"
65 | RegisterStateDriver(frame, "visibility", frame.frameVisibility)
66 |
67 | if cfg.fader then
68 | frame.isDisable = not C.db["Actionbar"]["Bar4Fader"]
69 | Bar.CreateButtonFrameFader(frame, buttonList, cfg.fader)
70 | end
71 |
72 | Bar:UpdateFrameClickThru()
73 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/oUF/private.lua:
--------------------------------------------------------------------------------
1 | local parent, ns = ...
2 | local Private = ns.oUF.Private
3 |
4 | function Private.argcheck(value, num, ...)
5 | assert(type(num) == 'number', "Bad argument #2 to 'argcheck' (number expected, got " .. type(num) .. ')')
6 |
7 | for i = 1, select('#', ...) do
8 | if(type(value) == select(i, ...)) then return end
9 | end
10 |
11 | local types = strjoin(', ', ...)
12 | local name = debugstack(2,2,0):match(": in function [`<](.-)['>]")
13 | error(string.format("Bad argument #%d to '%s' (%s expected, got %s)", num, name, types, type(value)), 3)
14 | end
15 |
16 | function Private.print(...)
17 | print('|cff33ff99oUF:|r', ...)
18 | end
19 |
20 | function Private.error(...)
21 | Private.print('|cffff0000Error:|r ' .. string.format(...))
22 | end
23 |
24 | function Private.nierror(...)
25 | return geterrorhandler()(...)
26 | end
27 |
28 | function Private.unitExists(unit)
29 | return unit and (UnitExists(unit) or ShowBossFrameWhenUninteractable(unit))
30 | end
31 |
32 | local validator = CreateFrame('Frame')
33 |
34 | function Private.validateUnit(unit)
35 | local isOK, _ = pcall(validator.RegisterUnitEvent, validator, 'UNIT_HEALTH', unit)
36 | if(isOK) then
37 | _, unit = validator:IsEventRegistered('UNIT_HEALTH')
38 | validator:UnregisterEvent('UNIT_HEALTH')
39 |
40 | return not not unit
41 | end
42 | end
43 |
44 | local selectionTypes = {
45 | [ 0] = 0,
46 | [ 1] = 1,
47 | [ 2] = 2,
48 | [ 3] = 3,
49 | [ 4] = 4,
50 | [ 5] = 5,
51 | [ 6] = 6,
52 | [ 7] = 7,
53 | [ 8] = 8,
54 | [ 9] = 9,
55 | -- [10] = 10, -- unavailable to players
56 | -- [11] = 11, -- unavailable to players
57 | -- [12] = 12, -- inconsistent due to bugs and its reliance on cvars
58 | [13] = 13,
59 | }
60 |
61 | function Private.unitSelectionType(unit, considerHostile)
62 | if(considerHostile and UnitThreatSituation('player', unit)) then
63 | return 0
64 | else
65 | return selectionTypes[UnitSelectionType(unit, true)]
66 | end
67 | end
68 |
69 | function Private.xpcall(func, ...)
70 | return xpcall(func, Private.nierror, ...)
71 | end
72 |
73 | function Private.validateEvent(event)
74 | local isOK = xpcall(validator.RegisterEvent, Private.nierror, validator, event)
75 | if(isOK) then
76 | validator:UnregisterEvent(event)
77 | end
78 |
79 | return isOK
80 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/NavigationBar.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | local r, g, b = DB.r, DB.g, DB.b
6 |
7 | local function moveNavButtons(self)
8 | local width = 0
9 | local collapsedWidth
10 | local maxWidth = self:GetWidth() - self.widthBuffer
11 |
12 | local lastShown
13 | local collapsed = false
14 |
15 | for i = #self.navList, 1, -1 do
16 | local currentWidth = width
17 | width = width + self.navList[i]:GetWidth()
18 |
19 | if width > maxWidth then
20 | collapsed = true
21 | if not collapsedWidth then
22 | collapsedWidth = currentWidth
23 | end
24 | else
25 | if lastShown then
26 | self.navList[lastShown]:SetPoint("LEFT", self.navList[i], "RIGHT", 1, 0)
27 | end
28 | lastShown = i
29 | end
30 | end
31 |
32 | if collapsed then
33 | if collapsedWidth + self.overflowButton:GetWidth() > maxWidth then
34 | lastShown = lastShown + 1
35 | end
36 |
37 | if lastShown then
38 | local lastButton = self.navList[lastShown]
39 |
40 | if lastButton then
41 | lastButton:SetPoint("LEFT", self.overflowButton, "RIGHT", 1, 0)
42 | end
43 | end
44 | end
45 | end
46 |
47 | hooksecurefunc("NavBar_Initialize", B.ReskinNavBar)
48 |
49 | hooksecurefunc("NavBar_AddButton", function(self)
50 | B.ReskinNavBar(self)
51 |
52 | local navButton = self.navList[#self.navList]
53 | if not navButton.restyled then
54 | B.Reskin(navButton)
55 | navButton.arrowUp:SetAlpha(0)
56 | navButton.arrowDown:SetAlpha(0)
57 | navButton.selected:SetDrawLayer("BACKGROUND", 1)
58 | navButton.selected:SetColorTexture(r, g, b, .25)
59 |
60 | navButton:HookScript("OnClick", function()
61 | moveNavButtons(self)
62 | end)
63 |
64 | -- arrow button
65 | local arrowButton = navButton.MenuArrowButton
66 | arrowButton.Art:Hide()
67 | arrowButton:SetHighlightTexture("")
68 |
69 | local tex = arrowButton:CreateTexture(nil, "ARTWORK")
70 | B.SetupArrow(tex, "down")
71 | tex:SetSize(14, 14)
72 | tex:SetPoint("CENTER")
73 | arrowButton.__texture = tex
74 |
75 | arrowButton:SetScript("OnEnter", B.Texture_OnEnter)
76 | arrowButton:SetScript("OnLeave", B.Texture_OnLeave)
77 |
78 | navButton.restyled = true
79 | end
80 |
81 | moveNavButtons(self)
82 | end)
83 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/cargBags/cargBags.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
22 |
23 |
24 |
25 |
26 |
27 |
32 |
33 |
34 |
35 |
40 |
41 |
42 |
43 |
44 |
45 |
48 |
49 |
50 |
51 |
55 |
56 |
57 |
58 |
59 |
63 |
64 |
65 |
66 |
67 |
71 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/cargBags/mixins/parseBags.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | LICENSE
3 | cargBags: An inventory framework addon for World of Warcraft
4 |
5 | Copyright (C) 2010 Constantin "Cargor" Schomburg
6 |
7 | cargBags is free software; you can redistribute it and/or
8 | modify it under the terms of the GNU General Public License
9 | as published by the Free Software Foundation; either version 2
10 | of the License, or (at your option) any later version.
11 |
12 | cargBags is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | GNU General Public License for more details.
16 |
17 | You should have received a copy of the GNU General Public License
18 | along with cargBags; if not, write to the Free Software
19 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 |
21 | DESCRIPTION
22 | Provides multiple easy ways to specify a range of bags to use within different contexts
23 |
24 | :ParseBags(bags) accepts the following:
25 | - a bag string, e.g. "backpack+bags"
26 | - an indexed table of bagIDs, e.g. { 0, 1, 2, 3, 4 }
27 | - a string defining a range, e.g. "0-4"
28 | - a single number, e.g. 0
29 | and returns an indexed table of all bagIDs
30 | ]]
31 | local _, ns = ...
32 | local cargBags = ns.cargBags
33 |
34 | local bagStrings = {
35 | ["backpack"] = { 0 },
36 | ["bags"] = { 1, 2, 3, 4 },
37 | ["backpack+bags"] = { 0, 1, 2, 3, 4 },
38 | ["bankframe"] = { -1 },
39 | ["bankframe+bank"] = { -1, 5, 6, 7, 8, 9, 10, 11 },
40 | ["bankreagent"] = { -3 },
41 | ["bank"] = { 5, 6, 7, 8, 9, 10, 11 },
42 | ["keyring"] = { -2 },
43 | }
44 | cargBags.BagStrings = bagStrings
45 |
46 | --[[!
47 | Parses a range of bags and outputs a table of indexed bagIDs
48 | @param bags
49 | @return bags
50 | ]]
51 | function cargBags:ParseBags(bags)
52 | if not bags then return end
53 | if(type(bags) == "table") then return bags end
54 | if(bagStrings[bags]) then return bagStrings[bags] end
55 | local min, max = bags:match("(%d+)-(%d+)")
56 | if(min) then
57 | local t = {}
58 | for i=min, max do
59 | t[#t+1] = i
60 | end
61 | bagStrings[bags] = t
62 | return t
63 | elseif(tonumber(bags)) then
64 | local t = {tonumber(bags)}
65 | bagStrings[bags] = t
66 | return t
67 | end
68 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/RaidFrameAuras/TBC/SerpentshrineCavern.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | local TIER = 2
6 | local INSTANCE = 548 -- 毒蛇神殿
7 |
8 | -- 小怪
9 | module:RegisterDebuff(TIER, INSTANCE, 0, 39029) -- 恶性毒药
10 | module:RegisterDebuff(TIER, INSTANCE, 0, 39015) -- 萎缩打击
11 | module:RegisterDebuff(TIER, INSTANCE, 0, 38718) -- 剧毒之池
12 | module:RegisterDebuff(TIER, INSTANCE, 0, 39032) -- 初期感染
13 | module:RegisterDebuff(TIER, INSTANCE, 0, 39042) -- 快速感染
14 | module:RegisterDebuff(TIER, INSTANCE, 0, 38626) -- 支配
15 | -- 不稳定的海度斯
16 | module:RegisterDebuff(TIER, INSTANCE, 0, 38235) -- 水之墓
17 | module:RegisterDebuff(TIER, INSTANCE, 0, 38215) -- 海度斯印记
18 | module:RegisterDebuff(TIER, INSTANCE, 0, 38216) -- 海度斯印记
19 | module:RegisterDebuff(TIER, INSTANCE, 0, 38217) -- 海度斯印记
20 | module:RegisterDebuff(TIER, INSTANCE, 0, 38218) -- 海度斯印记
21 | module:RegisterDebuff(TIER, INSTANCE, 0, 38219) -- 腐蚀印记
22 | module:RegisterDebuff(TIER, INSTANCE, 0, 38220) -- 腐蚀印记
23 | module:RegisterDebuff(TIER, INSTANCE, 0, 38221) -- 腐蚀印记
24 | module:RegisterDebuff(TIER, INSTANCE, 0, 38222) -- 腐蚀印记
25 | module:RegisterDebuff(TIER, INSTANCE, 0, 38230) -- 腐蚀印记
26 | module:RegisterDebuff(TIER, INSTANCE, 0, 38246) -- 肮脏淤泥
27 | -- 鱼斯拉
28 | module:RegisterDebuff(TIER, INSTANCE, 0, 37284) -- 沸水
29 | -- 莫洛格里·踏潮者
30 | module:RegisterDebuff(TIER, INSTANCE, 0, 38023) -- 水之墓穴
31 | module:RegisterDebuff(TIER, INSTANCE, 0, 38024) -- 水之墓穴
32 | module:RegisterDebuff(TIER, INSTANCE, 0, 38025) -- 水之墓穴
33 | module:RegisterDebuff(TIER, INSTANCE, 0, 37850) -- 水之墓穴
34 | module:RegisterDebuff(TIER, INSTANCE, 0, 37730) -- 海潮之波
35 | -- 深水领主卡拉瑟雷斯
36 | module:RegisterDebuff(TIER, INSTANCE, 0, 29436) -- 吸血投掷
37 | module:RegisterDebuff(TIER, INSTANCE, 0, 39261) -- 尘风
38 | module:RegisterDebuff(TIER, INSTANCE, 0, 38441) -- 灾难之箭
39 | module:RegisterDebuff(TIER, INSTANCE, 0, 38234) -- 冰霜震击
40 | -- 盲眼者莱欧瑟拉斯
41 | module:RegisterDebuff(TIER, INSTANCE, 0, 37640) -- 旋风斩
42 | module:RegisterDebuff(TIER, INSTANCE, 0, 37675) -- 混乱冲击
43 | module:RegisterDebuff(TIER, INSTANCE, 0, 37676) -- 诱惑低语
44 | -- 瓦丝琪女王
45 | module:RegisterDebuff(TIER, INSTANCE, 0, 38253) -- 毒液箭(被污染的元素)
46 | module:RegisterDebuff(TIER, INSTANCE, 0, 38258) -- 恐慌(盘牙精英)
47 | module:RegisterDebuff(TIER, INSTANCE, 0, 38262) -- 断筋(盘牙精英)
48 | module:RegisterDebuff(TIER, INSTANCE, 0, 38509) -- 震荡波
49 | module:RegisterDebuff(TIER, INSTANCE, 0, 38280) -- 静电充能
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/LibStub/LibStub.lua:
--------------------------------------------------------------------------------
1 | -- $Id: LibStub.lua 103 2014-10-16 03:02:50Z mikk $
2 | -- LibStub is a simple versioning stub meant for use in Libraries. http://www.wowace.com/addons/libstub/ for more info
3 | -- LibStub is hereby placed in the Public Domain
4 | -- Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, joshborke
5 | local LIBSTUB_MAJOR, LIBSTUB_MINOR = "LibStub", 2 -- NEVER MAKE THIS AN SVN REVISION! IT NEEDS TO BE USABLE IN ALL REPOS!
6 | local LibStub = _G[LIBSTUB_MAJOR]
7 |
8 | -- Check to see is this version of the stub is obsolete
9 | if not LibStub or LibStub.minor < LIBSTUB_MINOR then
10 | LibStub = LibStub or {libs = {}, minors = {} }
11 | _G[LIBSTUB_MAJOR] = LibStub
12 | LibStub.minor = LIBSTUB_MINOR
13 |
14 | -- LibStub:NewLibrary(major, minor)
15 | -- major (string) - the major version of the library
16 | -- minor (string or number ) - the minor version of the library
17 | --
18 | -- returns nil if a newer or same version of the lib is already present
19 | -- returns empty library object or old library object if upgrade is needed
20 | function LibStub:NewLibrary(major, minor)
21 | assert(type(major) == "string", "Bad argument #2 to `NewLibrary' (string expected)")
22 | minor = assert(tonumber(strmatch(minor, "%d+")), "Minor version must either be a number or contain a number.")
23 |
24 | local oldminor = self.minors[major]
25 | if oldminor and oldminor >= minor then return nil end
26 | self.minors[major], self.libs[major] = minor, self.libs[major] or {}
27 | return self.libs[major], oldminor
28 | end
29 |
30 | -- LibStub:GetLibrary(major, [silent])
31 | -- major (string) - the major version of the library
32 | -- silent (boolean) - if true, library is optional, silently return nil if its not found
33 | --
34 | -- throws an error if the library can not be found (except silent is set)
35 | -- returns the library object if found
36 | function LibStub:GetLibrary(major, silent)
37 | if not self.libs[major] and not silent then
38 | error(("Cannot find a library instance of %q."):format(tostring(major)), 2)
39 | end
40 | return self.libs[major], self.minors[major]
41 | end
42 |
43 | -- LibStub:IterateLibraries()
44 | --
45 | -- Returns an iterator for the currently registered libraries
46 | function LibStub:IterateLibraries()
47 | return pairs(self.libs)
48 | end
49 |
50 | setmetatable(LibStub, { __call = LibStub.GetLibrary })
51 | end
52 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Auras/Totems.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local A = B:GetModule("Auras")
4 |
5 | local _G = _G
6 | local GetTotemInfo = GetTotemInfo
7 |
8 | -- Style
9 | local totems = {}
10 |
11 | function A:TotemBar_Init()
12 | local margin = C.margin
13 | local vertical = C.db["Auras"]["VerticalTotems"]
14 | local iconSize = C.db["Auras"]["TotemSize"]
15 | local width = vertical and (iconSize + margin*2) or (iconSize*4 + margin*5)
16 | local height = vertical and (iconSize*4 + margin*5) or (iconSize + margin*2)
17 |
18 | local totemBar = _G["NDui_TotemBar"]
19 | if not totemBar then
20 | totemBar = CreateFrame("Frame", "NDui_TotemBar", UIParent)
21 | end
22 | totemBar:SetSize(width, height)
23 |
24 | if not totemBar.mover then
25 | totemBar.mover = B.Mover(totemBar, L["Totembar"], "Totems", C.Auras.TotemsPos)
26 | end
27 | totemBar.mover:SetSize(width, height)
28 |
29 | for i = 1, 4 do
30 | local totem = totems[i]
31 | if not totem then
32 | totem = CreateFrame("Frame", nil, totemBar)
33 | B.AuraIcon(totem)
34 | totem:SetAlpha(0)
35 | totems[i] = totem
36 |
37 | local blizzTotem = _G["TotemFrameTotem"..i]
38 | blizzTotem:SetParent(totem)
39 | blizzTotem:SetAllPoints()
40 | blizzTotem:SetAlpha(0)
41 | totem.__owner = blizzTotem
42 | end
43 |
44 | totem:SetSize(iconSize, iconSize)
45 | totem:ClearAllPoints()
46 | if i == 1 then
47 | totem:SetPoint("BOTTOMLEFT", margin, margin)
48 | elseif vertical then
49 | totem:SetPoint("BOTTOM", totems[i-1], "TOP", 0, margin)
50 | else
51 | totem:SetPoint("LEFT", totems[i-1], "RIGHT", margin, 0)
52 | end
53 | end
54 | end
55 |
56 | function A:TotemBar_Update()
57 | for i = 1, 4 do
58 | local totem = totems[i]
59 | local defaultTotem = totem.__owner
60 | local slot = defaultTotem.slot
61 |
62 | local haveTotem, _, start, dur, icon = GetTotemInfo(slot)
63 | if haveTotem and dur > 0 then
64 | totem.Icon:SetTexture(icon)
65 | totem.CD:SetCooldown(start, dur)
66 | totem.CD:Show()
67 | totem:SetAlpha(1)
68 | else
69 | totem.Icon:SetTexture("")
70 | totem.CD:Hide()
71 | totem:SetAlpha(0)
72 | end
73 | end
74 | end
75 |
76 | function A:Totems()
77 | if not C.db["Auras"]["Totems"] then return end
78 |
79 | A:TotemBar_Init()
80 | B:RegisterEvent("PLAYER_ENTERING_WORLD", A.TotemBar_Update)
81 | B:RegisterEvent("PLAYER_TOTEM_UPDATE", A.TotemBar_Update)
82 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/RaidFrameAuras/TBC/TempestKeep.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | local TIER = 2
6 | local INSTANCE = 550 -- 风暴要塞
7 |
8 | -- 小怪
9 | module:RegisterDebuff(TIER, INSTANCE, 0, 37132) -- 奥术震击(星占师学徒)
10 | module:RegisterDebuff(TIER, INSTANCE, 0, 37133) -- 奥术击打(星占师学徒)
11 | module:RegisterDebuff(TIER, INSTANCE, 0, 37279) -- 火焰之雨(星术师学徒)
12 | module:RegisterDebuff(TIER, INSTANCE, 0, 38712) -- 冲击波(星术师领主)
13 | module:RegisterDebuff(TIER, INSTANCE, 0, 37289) -- 龙息术(星术师领主)
14 | module:RegisterDebuff(TIER, INSTANCE, 0, 37123) -- 锯齿利刃(晶核机械师)
15 | module:RegisterDebuff(TIER, INSTANCE, 0, 37135) -- 支配(虚空占卜者)
16 | module:RegisterDebuff(TIER, INSTANCE, 0, 17928) -- 恐惧嚎叫(虚空占卜者)
17 | module:RegisterDebuff(TIER, INSTANCE, 0, 37118) -- 外壳震击(风暴要塞铁匠)
18 | module:RegisterDebuff(TIER, INSTANCE, 0, 37120) -- 破片炸弹(风暴要塞铁匠)
19 | module:RegisterDebuff(TIER, INSTANCE, 0, 37160) -- 沉默(凤鹰幼崽)
20 | module:RegisterDebuff(TIER, INSTANCE, 0, 37155) -- 献祭(风暴驯鹰者)
21 | module:RegisterDebuff(TIER, INSTANCE, 0, 39077) -- 制裁之锤(血警卫侍从/炽手血骑士)
22 | module:RegisterDebuff(TIER, INSTANCE, 0, 13005) -- 制裁之锤(血警卫守备官)
23 | module:RegisterDebuff(TIER, INSTANCE, 0, 37276) -- 精神鞭笞(炽手审讯者)
24 | module:RegisterDebuff(TIER, INSTANCE, 0, 37263) -- 暴风雪(炽手战斗法师)
25 | module:RegisterDebuff(TIER, INSTANCE, 0, 37265) -- 冰锥术(炽手战斗法师)
26 | module:RegisterDebuff(TIER, INSTANCE, 0, 39087) -- 冰霜攻击(炽手战斗法师)
27 | module:RegisterDebuff(TIER, INSTANCE, 0, 37262) -- 寒冰箭雨(炽手战斗法师))
28 | module:RegisterDebuff(TIER, INSTANCE, 0, 33390) -- 奥术洪流(日晷祭司)
29 | -- 奥
30 | module:RegisterDebuff(TIER, INSTANCE, 0, 35383) -- 烈焰之地
31 | module:RegisterDebuff(TIER, INSTANCE, 0, 35410) -- 融化护甲
32 | -- 魔能机甲
33 | module:RegisterDebuff(TIER, INSTANCE, 0, 34190) -- 奥术宝珠
34 | -- 大星术师
35 | module:RegisterDebuff(TIER, INSTANCE, 0, 33023) -- 索兰莉安印记
36 | module:RegisterDebuff(TIER, INSTANCE, 0, 33044) -- 星术师之怒
37 | module:RegisterDebuff(TIER, INSTANCE, 0, 33045) -- 星术师之怒
38 | -- 凯尔萨斯·逐日者
39 | module:RegisterDebuff(TIER, INSTANCE, 0, 36970) -- 奥术爆裂(星术师卡波妮娅)
40 | module:RegisterDebuff(TIER, INSTANCE, 0, 37018) -- 燃烧(星术师卡波妮娅)
41 | module:RegisterDebuff(TIER, INSTANCE, 0, 44863) -- 咆哮(萨古纳尔男爵)
42 | module:RegisterDebuff(TIER, INSTANCE, 0, 37027) -- 遥控玩具(首席技师塔隆尼库斯)
43 | module:RegisterDebuff(TIER, INSTANCE, 0, 36965) -- 撕裂(亵渎者萨拉德雷)
44 | module:RegisterDebuff(TIER, INSTANCE, 0, 30225) -- 沉默(亵渎者萨拉德雷)
45 | module:RegisterDebuff(TIER, INSTANCE, 0, 36834) -- 奥术干扰(凯尔萨斯·逐日者)
46 | module:RegisterDebuff(TIER, INSTANCE, 0, 36797) -- 精神控制(凯尔萨斯·逐日者)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Infobar/Spec.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | if not C.Infobar.Spec then return end
4 |
5 | local module = B:GetModule("Infobar")
6 | local info = module:RegisterInfobar("Spec", C.Infobar.SpecPos)
7 | local format, strsub = string.format, strsub
8 | local TALENT, SHOW_SPEC_LEVEL, FEATURE_BECOMES_AVAILABLE_AT_LEVEL, NONE = TALENT, SHOW_SPEC_LEVEL, FEATURE_BECOMES_AVAILABLE_AT_LEVEL, NONE
9 | local UnitLevel, ToggleTalentFrame, UnitCharacterPoints = UnitLevel, ToggleTalentFrame, UnitCharacterPoints
10 | local talentString = "%s (%s)"
11 | local unspendPoints = gsub(CHARACTER_POINTS1_COLON, HEADER_COLON, "")
12 |
13 | info.eventList = {
14 | "PLAYER_ENTERING_WORLD",
15 | "CHARACTER_POINTS_CHANGED",
16 | "SPELLS_CHANGED",
17 | }
18 |
19 | info.onEvent = function(self)
20 | local text = ""
21 | for i = 1, 5 do
22 | local name, _, pointsSpent = GetTalentTabInfo(i)
23 | if not name then break end
24 | text = text.."-"..pointsSpent
25 | end
26 | if text == "" then
27 | text = NONE
28 | else
29 | text = strsub(text, 2)
30 | end
31 | local points = UnitCharacterPoints("player")
32 | if points > 0 then
33 | text = format(talentString, text, points)
34 | end
35 | self.text:SetText(TALENT..": "..DB.MyColor..text)
36 | end
37 |
38 | info.onEnter = function(self)
39 | local _, anchor, offset = module:GetTooltipAnchor(info)
40 | GameTooltip:SetOwner(self, "ANCHOR_"..anchor, 0, offset)
41 | GameTooltip:ClearLines()
42 | GameTooltip:AddLine(TALENT, 0,.6,1)
43 | GameTooltip:AddLine(" ")
44 |
45 | for i = 1, 5 do
46 | local name, _, pointsSpent = GetTalentTabInfo(i)
47 | if not name then break end
48 | GameTooltip:AddDoubleLine(name, pointsSpent, 1,1,1, 1,.8,0)
49 | end
50 | local points = UnitCharacterPoints("player")
51 | if points > 0 then
52 | GameTooltip:AddLine(" ")
53 | GameTooltip:AddDoubleLine(unspendPoints, points, .6,.8,1, 1,.8,0)
54 | end
55 |
56 | GameTooltip:AddDoubleLine(" ", DB.LineString)
57 | GameTooltip:AddDoubleLine(" ", DB.LeftButton..L["SpecPanel"].." ", 1,1,1, .6,.8,1)
58 | GameTooltip:Show()
59 | end
60 |
61 | info.onLeave = B.HideTooltip
62 |
63 | info.onMouseUp = function()
64 | if UnitLevel("player") < SHOW_SPEC_LEVEL then
65 | UIErrorsFrame:AddMessage(DB.InfoColor..format(FEATURE_BECOMES_AVAILABLE_AT_LEVEL, SHOW_SPEC_LEVEL))
66 | else
67 | --if InCombatLockdown() then UIErrorsFrame:AddMessage(DB.InfoColor..ERR_NOT_IN_COMBAT) return end -- fix by LibShowUIPanel
68 | ToggleTalentFrame()
69 | end
70 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/RaidFrameAuras/TBC/Karazhan.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | local TIER = 2
6 | local INSTANCE = 532 -- 卡拉赞
7 |
8 | -- 猎手阿图门
9 | module:RegisterDebuff(TIER, INSTANCE, 0, 29833) -- 无形
10 | module:RegisterDebuff(TIER, INSTANCE, 0, 29711) -- 击倒
11 | -- 莫罗斯
12 | module:RegisterDebuff(TIER, INSTANCE, 0, 29425) -- 凿击
13 | module:RegisterDebuff(TIER, INSTANCE, 0, 34694) -- 致盲
14 | module:RegisterDebuff(TIER, INSTANCE, 0, 37066) -- 锁喉
15 | -- 歌剧院
16 | module:RegisterDebuff(TIER, INSTANCE, 0, 30822) -- 浸毒之刺
17 | module:RegisterDebuff(TIER, INSTANCE, 0, 30889) -- 强力吸附
18 | module:RegisterDebuff(TIER, INSTANCE, 0, 30890) -- 盲目激情
19 | -- 贞节圣女
20 | module:RegisterDebuff(TIER, INSTANCE, 0, 29511) -- 悔改
21 | module:RegisterDebuff(TIER, INSTANCE, 0, 29522) -- 神圣之火
22 | module:RegisterDebuff(TIER, INSTANCE, 0, 29512) -- 神圣之地
23 | -- 馆长
24 | -- 特雷斯坦·邪蹄
25 | module:RegisterDebuff(TIER, INSTANCE, 0, 30053) -- 火焰增效
26 | module:RegisterDebuff(TIER, INSTANCE, 0, 30115) -- 牺牲
27 | -- 埃兰之影
28 | module:RegisterDebuff(TIER, INSTANCE, 0, 29946) -- 烈焰花环
29 | module:RegisterDebuff(TIER, INSTANCE, 0, 29947) -- 烈焰花环
30 | module:RegisterDebuff(TIER, INSTANCE, 0, 29990) -- 减速
31 | module:RegisterDebuff(TIER, INSTANCE, 0, 29991) -- 冰链术
32 | module:RegisterDebuff(TIER, INSTANCE, 0, 29954) -- 寒冰箭
33 | module:RegisterDebuff(TIER, INSTANCE, 0, 29951) -- 暴风雪
34 | -- 虚空幽龙
35 | module:RegisterDebuff(TIER, INSTANCE, 0, 38637) -- 虚空疲倦
36 | module:RegisterDebuff(TIER, INSTANCE, 0, 38638) -- 虚空疲倦
37 | module:RegisterDebuff(TIER, INSTANCE, 0, 38639) -- 虚空疲倦
38 | module:RegisterDebuff(TIER, INSTANCE, 0, 30400) -- 虚空光柱 - 坚韧
39 | module:RegisterDebuff(TIER, INSTANCE, 0, 30401) -- 虚空光柱 - 平静
40 | module:RegisterDebuff(TIER, INSTANCE, 0, 30402) -- 虚空光柱 - 统御
41 | module:RegisterDebuff(TIER, INSTANCE, 0, 30421) -- 虚空之门 - 坚韧
42 | module:RegisterDebuff(TIER, INSTANCE, 0, 30422) -- 虚空之门 - 平静
43 | module:RegisterDebuff(TIER, INSTANCE, 0, 30423) -- 虚空之门 - 统御
44 | -- 象棋
45 | module:RegisterDebuff(TIER, INSTANCE, 0, 30529) -- 刚刚控制过棋子
46 | -- 玛克扎尔王子
47 | module:RegisterDebuff(TIER, INSTANCE, 0, 39095) -- 伤害增效
48 | module:RegisterDebuff(TIER, INSTANCE, 0, 30898) -- 暗言术:痛
49 | module:RegisterDebuff(TIER, INSTANCE, 0, 30854) -- 暗言术:痛
50 | -- 夜之魇
51 | module:RegisterDebuff(TIER, INSTANCE, 0, 37091) -- 白骨之雨
52 | module:RegisterDebuff(TIER, INSTANCE, 0, 30210) -- 浓烟吐息
53 | module:RegisterDebuff(TIER, INSTANCE, 0, 30129) -- 灼烧土地
54 | module:RegisterDebuff(TIER, INSTANCE, 0, 30127) -- 灼热灰烬
55 | module:RegisterDebuff(TIER, INSTANCE, 0, 36922) -- 低沉咆哮
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/Blizzard_BindingUI.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | C.themes["Blizzard_BindingUI"] = function()
5 | local r, g, b = DB.r, DB.g, DB.b
6 |
7 | local KeyBindingFrame = KeyBindingFrame
8 |
9 | KeyBindingFrame.header:DisableDrawLayer("BACKGROUND")
10 | KeyBindingFrame.header:DisableDrawLayer("BORDER")
11 | KeyBindingFrame.scrollFrame.scrollBorderTop:SetTexture("")
12 | KeyBindingFrame.scrollFrame.scrollBorderBottom:SetTexture("")
13 | KeyBindingFrame.scrollFrame.scrollBorderMiddle:SetTexture("")
14 | KeyBindingFrame.scrollFrame.scrollFrameScrollBarBackground:SetTexture("")
15 | B.StripTextures(KeyBindingFrame.categoryList)
16 | KeyBindingFrame.bindingsContainer:HideBackdrop()
17 |
18 | B.StripTextures(KeyBindingFrame)
19 | B.SetBD(KeyBindingFrame)
20 | B.Reskin(KeyBindingFrame.defaultsButton)
21 | B.Reskin(KeyBindingFrame.unbindButton)
22 | B.Reskin(KeyBindingFrame.okayButton)
23 | B.Reskin(KeyBindingFrame.cancelButton)
24 | B.ReskinCheck(KeyBindingFrame.characterSpecificButton)
25 | B.ReskinScroll(KeyBindingFrameScrollFrameScrollBar)
26 | KeyBindingFrameScrollFrame.scrollFrameScrollBarBackground:Hide()
27 |
28 | for i = 1, KEY_BINDINGS_DISPLAYED do
29 | local button1 = _G["KeyBindingFrameKeyBinding"..i.."Key1Button"]
30 | local button2 = _G["KeyBindingFrameKeyBinding"..i.."Key2Button"]
31 | button2:SetPoint("LEFT", button1, "RIGHT", 1, 0)
32 | end
33 |
34 | hooksecurefunc("BindingButtonTemplate_SetupBindingButton", function(_, button)
35 | if not button.styled then
36 | local selected = button.selectedHighlight
37 | selected:SetTexture(DB.bdTex)
38 | selected:SetPoint("TOPLEFT", C.mult, -C.mult)
39 | selected:SetPoint("BOTTOMRIGHT", -C.mult, C.mult)
40 | selected:SetColorTexture(r, g, b, .25)
41 | B.Reskin(button)
42 |
43 | button.styled = true
44 | end
45 | end)
46 |
47 | KeyBindingFrame.header.text:ClearAllPoints()
48 | KeyBindingFrame.header.text:SetPoint("TOP", KeyBindingFrame, "TOP", 0, -8)
49 | KeyBindingFrame.unbindButton:ClearAllPoints()
50 | KeyBindingFrame.unbindButton:SetPoint("BOTTOMRIGHT", -207, 16)
51 | KeyBindingFrame.okayButton:ClearAllPoints()
52 | KeyBindingFrame.okayButton:SetPoint("BOTTOMLEFT", KeyBindingFrame.unbindButton, "BOTTOMRIGHT", 1, 0)
53 | KeyBindingFrame.cancelButton:ClearAllPoints()
54 | KeyBindingFrame.cancelButton:SetPoint("BOTTOMLEFT", KeyBindingFrame.okayButton, "BOTTOMRIGHT", 1, 0)
55 |
56 | local line = KeyBindingFrame:CreateTexture(nil, "ARTWORK")
57 | line:SetSize(1, 546)
58 | line:SetPoint("LEFT", 205, 10)
59 | line:SetColorTexture(1, 1, 1, .2)
60 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/SpellBookFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | SpellBookFrameCloseButton = SpellBookCloseButton
6 | B.ReskinPortraitFrame(SpellBookFrame, 10, -10, -32, 70)
7 | for i = 1, 3 do
8 | local bu = _G["SpellBookFrameTabButton"..i]
9 | B.StripTextures(bu)
10 | local bg = B.CreateBDFrame(bu)
11 | bg:SetPoint("TOPLEFT", 12, -15)
12 | bg:SetPoint("BOTTOMRIGHT", -12, 20)
13 | if i == 1 then
14 | bu:SetPoint("CENTER", SpellBookFrame, "BOTTOMLEFT", 79, 54)
15 | end
16 | end
17 |
18 | for i = 1, 8 do
19 | local tab = _G["SpellBookSkillLineTab"..i]
20 | B.CreateBDFrame(tab)
21 | tab:DisableDrawLayer("BACKGROUND")
22 | tab:GetNormalTexture():SetTexCoord(.08, .92, .08, .92)
23 | tab:GetCheckedTexture():SetTexture(DB.textures.pushed)
24 | local hl = tab:GetHighlightTexture()
25 | hl:SetColorTexture(1, 1, 1, .25)
26 | hl:SetAllPoints()
27 | end
28 |
29 | B.ReskinArrow(SpellBookPrevPageButton, "left")
30 | B.ReskinArrow(SpellBookNextPageButton, "right")
31 |
32 | for i = 1, SPELLS_PER_PAGE do
33 | local bu = _G["SpellButton"..i]
34 | local ic = _G["SpellButton"..i.."IconTexture"]
35 |
36 | B.StripTextures(bu)
37 | bu:DisableDrawLayer("BACKGROUND")
38 |
39 | ic:SetTexCoord(.08, .92, .08, .92)
40 | B.CreateBDFrame(ic, .25)
41 | end
42 |
43 | hooksecurefunc("SpellButton_UpdateButton", function(self)
44 | if SpellBookFrame.bookType == BOOKTYPE_PROFESSION then return end
45 |
46 | local slot, slotType = SpellBook_GetSpellBookSlot(self)
47 | local isPassive = IsPassiveSpell(slot, SpellBookFrame.bookType)
48 | local name = self:GetName()
49 | local highlightTexture = _G[name.."Highlight"]
50 | if isPassive then
51 | highlightTexture:SetColorTexture(1, 1, 1, 0)
52 | else
53 | highlightTexture:SetColorTexture(1, 1, 1, .25)
54 | end
55 |
56 | local subSpellString = _G[name.."SubSpellName"]
57 | local isOffSpec = self.offSpecID ~= 0 and SpellBookFrame.bookType == BOOKTYPE_SPELL
58 | subSpellString:SetTextColor(1, 1, 1)
59 |
60 | if slotType == "FUTURESPELL" then
61 | local level = GetSpellAvailableLevel(slot, SpellBookFrame.bookType)
62 | if level and level > UnitLevel("player") then
63 | self.SpellName:SetTextColor(.7, .7, .7)
64 | subSpellString:SetTextColor(.7, .7, .7)
65 | end
66 | else
67 | if slotType == "SPELL" and isOffSpec then
68 | subSpellString:SetTextColor(.7, .7, .7)
69 | end
70 | end
71 |
72 | local ic = _G[name.."IconTexture"]
73 | if ic.bg then
74 | ic.bg:SetShown(ic:IsShown())
75 | end
76 | end)
77 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/GossipFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | local gsub, strmatch = gsub, strmatch
5 |
6 | local function replaceGossipFormat(button, textFormat, text)
7 | local newFormat, count = gsub(textFormat, "000000", "ffffff")
8 | if count > 0 then
9 | button:SetFormattedText(newFormat, text)
10 | end
11 | end
12 |
13 | local replacedGossipColor = {
14 | ["000000"] = "ffffff",
15 | ["414141"] = "7b8489", -- lighter color for some gossip options
16 | }
17 | local function replaceGossipText(button, text)
18 | if text and text ~= "" then
19 | local newText, count = gsub(text, ":32:32:0:0", ":32:32:0:0:64:64:5:59:5:59") -- replace icon texture
20 | if count > 0 then
21 | text = newText
22 | button:SetFormattedText("%s", text)
23 | end
24 |
25 | local colorStr, rawText = strmatch(text, "|c[fF][fF](%x%x%x%x%x%x)(.-)|r")
26 | colorStr = replacedGossipColor[colorStr]
27 | if colorStr and rawText then
28 | button:SetFormattedText("|cff%s%s|r", colorStr, rawText)
29 | end
30 | end
31 | end
32 |
33 | tinsert(C.defaultThemes, function()
34 | QuestFont:SetTextColor(1, 1, 1)
35 | GossipGreetingText:SetTextColor(1, 1, 1)
36 |
37 | NPCFriendshipStatusBar.icon:SetPoint("TOPLEFT", -30, 7)
38 | B.StripTextures(NPCFriendshipStatusBar)
39 | NPCFriendshipStatusBar:SetStatusBarTexture(DB.normTex)
40 | B.CreateBDFrame(NPCFriendshipStatusBar, .25)
41 |
42 | for i = 1, 4 do
43 | local notch = _G["NPCFriendshipStatusBarNotch"..i]
44 | if notch then
45 | notch:SetColorTexture(0, 0, 0)
46 | notch:SetSize(C.mult, 16)
47 | end
48 | end
49 |
50 | B.ReskinPortraitFrame(GossipFrame, 15, -15, -30, 65)
51 | B.Reskin(GossipFrameGreetingGoodbyeButton)
52 | B.ReskinScroll(GossipGreetingScrollFrameScrollBar)
53 | B.StripTextures(GossipFrameGreetingPanel)
54 |
55 | local NUMGOSSIPBUTTONS = NUMGOSSIPBUTTONS or 32
56 |
57 | for i = 1, NUMGOSSIPBUTTONS do
58 | local button = _G["GossipTitleButton"..i]
59 | if button and not button.styled then
60 | replaceGossipText(button, button:GetText())
61 | hooksecurefunc(button, "SetText", replaceGossipText)
62 | hooksecurefunc(button, "SetFormattedText", replaceGossipFormat)
63 |
64 | button.styled = true
65 | end
66 | end
67 |
68 | -- Text on QuestFrame
69 | local MAX_NUM_QUESTS = MAX_NUM_QUESTS or 25
70 |
71 | for i = 1, MAX_NUM_QUESTS do
72 | local button = _G["QuestTitleButton"..i]
73 | if button and not button.styled then
74 | replaceGossipText(button, button:GetText())
75 | hooksecurefunc(button, "SetFormattedText", replaceGossipFormat)
76 |
77 | button.styled = true
78 | end
79 | end
80 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/ChatFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | -- Battlenet toast frame
6 | BNToastFrame:SetBackdrop(nil)
7 | B.SetBD(BNToastFrame)
8 | BNToastFrame.TooltipFrame:HideBackdrop()
9 | B.SetBD(BNToastFrame.TooltipFrame)
10 |
11 | TimeAlertFrame:SetBackdrop(nil)
12 | B.SetBD(TimeAlertFrame)
13 |
14 | -- Battletag invite frame
15 | BattleTagInviteFrame:SetBackdrop(nil)
16 | B.SetBD(BattleTagInviteFrame)
17 | local send, cancel = BattleTagInviteFrame:GetChildren()
18 | B.Reskin(send)
19 | B.Reskin(cancel)
20 |
21 | local homeTex = "Interface\\Buttons\\UI-HomeButton"
22 | B.Reskin(ChatFrameChannelButton)
23 | ChatFrameChannelButton:SetSize(20, 20)
24 | B.Reskin(ChatFrameMenuButton)
25 | ChatFrameMenuButton:SetSize(20, 20)
26 | ChatFrameMenuButton:SetNormalTexture(homeTex)
27 | ChatFrameMenuButton:SetPushedTexture(homeTex)
28 |
29 | -- ChannelFrame
30 | B.ReskinPortraitFrame(ChannelFrame)
31 | B.Reskin(ChannelFrame.NewButton)
32 | B.Reskin(ChannelFrame.SettingsButton)
33 | B.ReskinScroll(ChannelFrame.ChannelList.ScrollBar)
34 | B.ReskinScroll(ChannelFrame.ChannelRoster.ScrollFrame.scrollBar)
35 |
36 | hooksecurefunc(ChannelFrame.ChannelList, "Update", function(self)
37 | for i = 1, self.Child:GetNumChildren() do
38 | local tab = select(i, self.Child:GetChildren())
39 | if not tab.styled and tab:IsHeader() then
40 | tab:SetNormalTexture("")
41 | tab.bg = B.CreateBDFrame(tab, .25)
42 | tab.bg:SetAllPoints()
43 |
44 | tab.styled = true
45 | end
46 | end
47 | end)
48 |
49 | B.StripTextures(CreateChannelPopup)
50 | B.SetBD(CreateChannelPopup)
51 | B.Reskin(CreateChannelPopup.OKButton)
52 | B.Reskin(CreateChannelPopup.CancelButton)
53 | B.ReskinClose(CreateChannelPopup.CloseButton)
54 | B.ReskinInput(CreateChannelPopup.Name)
55 | B.ReskinInput(CreateChannelPopup.Password)
56 |
57 | B.SetBD(VoiceChatPromptActivateChannel)
58 | B.Reskin(VoiceChatPromptActivateChannel.AcceptButton)
59 | VoiceChatChannelActivatedNotification:SetBackdrop(nil)
60 | B.SetBD(VoiceChatChannelActivatedNotification)
61 |
62 | B.ReskinSlider(UnitPopupVoiceMicrophoneVolume.Slider)
63 | B.ReskinSlider(UnitPopupVoiceSpeakerVolume.Slider)
64 |
65 | -- VoiceActivityManager
66 | hooksecurefunc(VoiceActivityManager, "LinkFrameNotificationAndGuid", function(_, _, notification, guid)
67 | local class = select(2, GetPlayerInfoByGUID(guid))
68 | if class then
69 | local color = DB.ClassColors[class]
70 | if notification.Name then
71 | notification.Name:SetTextColor(color.r, color.g, color.b)
72 | end
73 | end
74 | end)
75 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/cargBags/mixins-add/layouts.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | cargBags: An inventory framework addon for World of Warcraft
3 |
4 | Copyright (C) 2010 Constantin "Cargor" Schomburg
5 |
6 | cargBags is free software; you can redistribute it and/or
7 | modify it under the terms of the GNU General Public License
8 | as published by the Free Software Foundation; either version 2
9 | of the License, or (at your option) any later version.
10 |
11 | cargBags is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with cargBags; if not, write to the Free Software
18 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 |
20 | DESCRIPTION
21 | This file holds a list of default layouts
22 |
23 | DEPENDENCIES
24 | mixins/api-common.lua
25 | ]]
26 | local _, ns = ...
27 | local layouts = ns.cargBags.classes.Container.layouts
28 |
29 | function layouts.grid(self, columns, spacing, xOffset, yOffset)
30 | columns, spacing = columns or 8, spacing or 5
31 | xOffset, yOffset = xOffset or 0, yOffset or 0
32 |
33 |
34 | local width, height = 0, 0
35 | local col, row = 0, 0
36 | for i, button in ipairs(self.buttons) do
37 |
38 | if(i == 1) then -- Hackish, I know
39 | width, height = button:GetSize()
40 | end
41 |
42 | col = i % columns
43 | if(col == 0) then col = columns end
44 | row = math.ceil(i/columns)
45 |
46 | local xPos = (col-1) * (width + spacing)
47 | local yPos = -1 * (row-1) * (height + spacing)
48 |
49 | button:ClearAllPoints()
50 | button:SetPoint("TOPLEFT", self, "TOPLEFT", xPos+xOffset, yPos+yOffset)
51 | end
52 |
53 | return columns * (width+spacing)-spacing, row * (height+spacing)-spacing
54 | end
55 |
56 | --[[!
57 | Places the buttons in a circle [experimental]
58 | @param radius radius of the circle [optional]
59 | @param xOffset x-offset of the whole layout [default: 0]
60 | @param yOffset y-offset of the whole layout [default: 0]
61 | ]]
62 | function layouts.circle(self, radius, xOffset, yOffset)
63 | radius = radius or (#self.buttons*50)/math.pi/2
64 | xOffset, yOffset = xOffset or 0, yOffset or 0
65 |
66 | local a = 360/#self.buttons
67 |
68 | for i, button in ipairs(self.buttons) do
69 | local x = radius*cos(a*i)
70 | local y = -radius*sin(a*i)
71 |
72 | button:ClearAllPoints()
73 | button:SetPoint("TOPLEFT", self, "TOPLEFT", radius+x+xOffset, y-radius+yOffset)
74 | end
75 | return radius*2, radius*2
76 | end
77 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/UIDropDownMenu.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local r, g, b = DB.r, DB.g, DB.b
4 |
5 | tinsert(C.defaultThemes, function()
6 | if not C.db["Skins"]["BlizzardSkins"] then return end
7 |
8 | local dropdowns = {"DropDownList", "L_DropDownList", "Lib_DropDownList"}
9 | hooksecurefunc("UIDropDownMenu_CreateFrames", function()
10 | for _, name in next, dropdowns do
11 | for i = 1, UIDROPDOWNMENU_MAXLEVELS do
12 | local backdrop = _G[name..i.."Backdrop"]
13 | if backdrop and not backdrop.styled then
14 | B.StripTextures(backdrop)
15 | B.SetBD(backdrop, .7)
16 |
17 | backdrop.styled = true
18 | end
19 | end
20 | end
21 | end)
22 |
23 | hooksecurefunc("ToggleDropDownMenu", function(level)
24 | if not level then level = 1 end
25 |
26 | local listFrame = _G["DropDownList"..level]
27 | for i = 1, UIDROPDOWNMENU_MAXBUTTONS do
28 | local bu = _G["DropDownList"..level.."Button"..i]
29 | local _, _, _, x = bu:GetPoint()
30 | if bu:IsShown() and x then
31 | local check = _G["DropDownList"..level.."Button"..i.."Check"]
32 | local uncheck = _G["DropDownList"..level.."Button"..i.."UnCheck"]
33 | local hl = _G["DropDownList"..level.."Button"..i.."Highlight"]
34 | local arrow = _G["DropDownList"..level.."Button"..i.."ExpandArrow"]
35 |
36 | if not bu.bg then
37 | bu.bg = B.CreateBDFrame(bu)
38 | bu.bg:ClearAllPoints()
39 | bu.bg:SetPoint("CENTER", check)
40 | bu.bg:SetSize(12, 12)
41 | hl:SetColorTexture(r, g, b, .25)
42 |
43 | if arrow then
44 | B.SetupArrow(arrow:GetNormalTexture(), "right")
45 | arrow:SetSize(14, 14)
46 | end
47 | end
48 |
49 | bu.bg:Hide()
50 | hl:SetPoint("TOPLEFT", -x + C.mult, 0)
51 | hl:SetPoint("BOTTOMRIGHT", listFrame:GetWidth() - bu:GetWidth() - x - C.mult, 0)
52 | if uncheck then uncheck:SetTexture("") end
53 |
54 | if not bu.notCheckable then
55 | -- only reliable way to see if button is radio or or check...
56 | local _, co = check:GetTexCoord()
57 | if co == 0 then
58 | check:SetTexture("Interface\\Buttons\\UI-CheckBox-Check")
59 | check:SetVertexColor(r, g, b, 1)
60 | check:SetSize(20, 20)
61 | check:SetDesaturated(true)
62 | else
63 | check:SetColorTexture(r, g, b, .6)
64 | check:SetSize(10, 10)
65 | check:SetDesaturated(false)
66 | end
67 |
68 | check:SetTexCoord(0, 1, 0, 1)
69 | bu.bg:Show()
70 | end
71 | end
72 | end
73 | end)
74 |
75 | hooksecurefunc("UIDropDownMenu_SetIconImage", function(icon, texture)
76 | if texture:find("Divider") then
77 | icon:SetColorTexture(1, 1, 1, .2)
78 | icon:SetHeight(C.mult)
79 | end
80 | end)
81 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/oUF/Elements/restingindicator.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | # Element: Resting Indicator
3 |
4 | Toggles the visibility of an indicator based on the player's resting status.
5 |
6 | ## Widget
7 |
8 | RestingIndicator - Any UI widget.
9 |
10 | ## Notes
11 |
12 | A default texture will be applied if the widget is a Texture and doesn't have a texture or a color set.
13 |
14 | ## Examples
15 |
16 | -- Position and size
17 | local RestingIndicator = self:CreateTexture(nil, 'OVERLAY')
18 | RestingIndicator:SetSize(16, 16)
19 | RestingIndicator:SetPoint('TOPLEFT', self)
20 |
21 | -- Register it with oUF
22 | self.RestingIndicator = RestingIndicator
23 | --]]
24 |
25 | local _, ns = ...
26 | local oUF = ns.oUF
27 |
28 | local function Update(self, event)
29 | local element = self.RestingIndicator
30 |
31 | --[[ Callback: RestingIndicator:PreUpdate()
32 | Called before the element has been updated.
33 |
34 | * self - the RestingIndicator element
35 | --]]
36 | if(element.PreUpdate) then
37 | element:PreUpdate()
38 | end
39 |
40 | local isResting = IsResting()
41 | if(isResting) then
42 | element:Show()
43 | else
44 | element:Hide()
45 | end
46 |
47 | --[[ Callback: RestingIndicator:PostUpdate(isResting)
48 | Called after the element has been updated.
49 |
50 | * self - the RestingIndicator element
51 | * isResting - indicates if the player is resting (boolean)
52 | --]]
53 | if(element.PostUpdate) then
54 | return element:PostUpdate(isResting)
55 | end
56 | end
57 |
58 | local function Path(self, ...)
59 | --[[ Override: RestingIndicator.Override(self, event)
60 | Used to completely override the internal update function.
61 |
62 | * self - the parent object
63 | * event - the event triggering the update (string)
64 | --]]
65 | return (self.RestingIndicator.Override or Update) (self, ...)
66 | end
67 |
68 | local function ForceUpdate(element)
69 | return Path(element.__owner, 'ForceUpdate')
70 | end
71 |
72 | local function Enable(self, unit)
73 | local element = self.RestingIndicator
74 | if(element and UnitIsUnit(unit, 'player')) then
75 | element.__owner = self
76 | element.ForceUpdate = ForceUpdate
77 |
78 | self:RegisterEvent('PLAYER_UPDATE_RESTING', Path, true)
79 |
80 | if(element:IsObjectType('Texture') and not element:GetTexture()) then
81 | element:SetTexture([[Interface\CharacterFrame\UI-StateIcon]])
82 | element:SetTexCoord(0, 0.5, 0, 0.421875)
83 | end
84 |
85 | return true
86 | end
87 | end
88 |
89 | local function Disable(self)
90 | local element = self.RestingIndicator
91 | if(element) then
92 | element:Hide()
93 |
94 | self:UnregisterEvent('PLAYER_UPDATE_RESTING', Path)
95 | end
96 | end
97 |
98 | oUF:AddElement('RestingIndicator', Path, Enable, Disable)
99 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Tooltip/TooltipIcons.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local TT = B:GetModule("Tooltip")
4 |
5 | local gsub, unpack, strfind = gsub, unpack, strfind
6 | local GetItemIcon, GetSpellTexture = GetItemIcon, GetSpellTexture
7 | local newString = "0:0:64:64:5:59:5:59"
8 |
9 | function TT:SetupTooltipIcon(icon)
10 | local title = icon and _G[self:GetName().."TextLeft1"]
11 | local titleText = title and title:GetText()
12 | if titleText then
13 | title:SetFormattedText("|T%s:20:20:"..newString..":%d|t %s", icon, 20, titleText)
14 | end
15 |
16 | for i = 2, self:NumLines() do
17 | local line = _G[self:GetName().."TextLeft"..i]
18 | if not line then break end
19 | local text = line:GetText()
20 | if text and text ~= " " and not strfind(text, "UI%-CharacterCreate%-Classes") then
21 | local newText, count = gsub(text, "|T([^:]-):[%d+:]+|t", "|T%1:14:14:"..newString.."|t")
22 | if count > 0 then line:SetText(newText) end
23 | end
24 | end
25 | end
26 |
27 | function TT:HookTooltipCleared()
28 | self.tipModified = false
29 | end
30 |
31 | function TT:HookTooltipSetItem()
32 | if not self.tipModified then
33 | local _, link = self:GetItem()
34 | if link then
35 | TT.SetupTooltipIcon(self, GetItemIcon(link))
36 | end
37 |
38 | self.tipModified = true
39 | end
40 | end
41 |
42 | function TT:HookTooltipSetSpell()
43 | if not self.tipModified then
44 | local _, id = self:GetSpell()
45 | if id then
46 | TT.SetupTooltipIcon(self, GetSpellTexture(id))
47 | end
48 |
49 | self.tipModified = true
50 | end
51 | end
52 |
53 | function TT:HookTooltipMethod()
54 | self:HookScript("OnTooltipSetItem", TT.HookTooltipSetItem)
55 | self:HookScript("OnTooltipSetSpell", TT.HookTooltipSetSpell)
56 | self:HookScript("OnTooltipCleared", TT.HookTooltipCleared)
57 | end
58 |
59 | local function updateBackdropColor(self, r, g, b)
60 | self:GetParent().bg:SetBackdropBorderColor(r, g, b)
61 | end
62 |
63 | local function resetBackdropColor(self)
64 | self:GetParent().bg:SetBackdropBorderColor(0, 0, 0)
65 | end
66 |
67 | function TT:ReskinRewardIcon()
68 | self.Icon:SetTexCoord(unpack(DB.TexCoord))
69 | self.bg = B.CreateBDFrame(self, 0)
70 | self.bg:SetOutside(self.Icon)
71 |
72 | local iconBorder = self.IconBorder
73 | iconBorder:SetAlpha(0)
74 | hooksecurefunc(iconBorder, "SetVertexColor", updateBackdropColor)
75 | hooksecurefunc(iconBorder, "Hide", resetBackdropColor)
76 | end
77 |
78 | function TT:ReskinTooltipIcons()
79 | TT.HookTooltipMethod(GameTooltip)
80 | TT.HookTooltipMethod(ItemRefTooltip)
81 |
82 | hooksecurefunc(GameTooltip, "SetUnitAura", function(self)
83 | TT.SetupTooltipIcon(self)
84 | end)
85 |
86 | -- Tooltip rewards icon
87 | TT.ReskinRewardIcon(EmbeddedItemTooltip.ItemTooltip)
88 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Infobar/Latency.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | if not C.Infobar.Latency then return end
4 |
5 | local module = B:GetModule("Infobar")
6 | local info = module:RegisterInfobar("Ping", C.Infobar.LatencyPos)
7 |
8 | local max, format = max, format
9 | local GetNetStats, GetNetIpTypes, GetCVarBool = GetNetStats, GetNetIpTypes, GetCVarBool
10 | local GetAvailableBandwidth, GetDownloadedPercentage = GetAvailableBandwidth, GetDownloadedPercentage
11 | local GetFileStreamingStatus, GetBackgroundLoadingStatus = GetFileStreamingStatus, GetBackgroundLoadingStatus
12 | local UNKNOWN = UNKNOWN
13 | local entered
14 |
15 | local function colorLatency(latency)
16 | if latency < 250 then
17 | return "|cff0CD809"..latency
18 | elseif latency < 500 then
19 | return "|cffE8DA0F"..latency
20 | else
21 | return "|cffD80909"..latency
22 | end
23 | end
24 |
25 | local function setLatency(self)
26 | local _, _, latencyHome, latencyWorld = GetNetStats()
27 | local latency = max(latencyHome, latencyWorld)
28 | self.text:SetText(L["Latency"]..": "..colorLatency(latency))
29 | end
30 |
31 | info.onUpdate = function(self, elapsed)
32 | self.timer = (self.timer or 0) + elapsed
33 | if self.timer > 1 then
34 | setLatency(self)
35 | if entered then self:onEnter() end
36 |
37 | self.timer = 0
38 | end
39 | end
40 |
41 | local ipTypes = {"IPv4", "IPv6"}
42 | info.onEnter = function(self)
43 | entered = true
44 |
45 | local _, anchor, offset = module:GetTooltipAnchor(info)
46 | GameTooltip:SetOwner(self, "ANCHOR_"..anchor, 0, offset)
47 | GameTooltip:ClearLines()
48 | GameTooltip:AddLine(L["Latency"], 0,.6,1)
49 | GameTooltip:AddLine(" ")
50 |
51 | local _, _, latencyHome, latencyWorld = GetNetStats()
52 | GameTooltip:AddDoubleLine(L["Home Latency"], colorLatency(latencyHome).."|r ms", .6,.8,1, 1,1,1)
53 | GameTooltip:AddDoubleLine(L["World Latency"], colorLatency(latencyWorld).."|r ms", .6,.8,1, 1,1,1)
54 |
55 | if GetCVarBool("useIPv6") then
56 | local ipTypeHome, ipTypeWorld = GetNetIpTypes()
57 | GameTooltip:AddLine(" ")
58 | GameTooltip:AddDoubleLine(L["Home Protocol"], ipTypes[ipTypeHome or 0] or UNKNOWN, .6,.8,1, 1,1,1)
59 | GameTooltip:AddDoubleLine(L["World Protocol"], ipTypes[ipTypeWorld or 0] or UNKNOWN, .6,.8,1, 1,1,1)
60 | end
61 |
62 | local downloading = GetFileStreamingStatus() ~= 0 or GetBackgroundLoadingStatus() ~= 0
63 | if downloading then
64 | GameTooltip:AddLine(" ")
65 | GameTooltip:AddDoubleLine(L["Bandwidth"], format("%.2f Mbps", GetAvailableBandwidth()), .6,.8,1, 1,1,1)
66 | GameTooltip:AddDoubleLine(L["Download"], format("%.2f%%", GetDownloadedPercentage()*100), .6,.8,1, 1,1,1)
67 | end
68 |
69 | GameTooltip:Show()
70 | end
71 |
72 | info.onLeave = function()
73 | entered = false
74 | GameTooltip:Hide()
75 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/cargBags/mixins/api-common.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | cargBags: An inventory framework addon for World of Warcraft
3 |
4 | Copyright (C) 2010 Constantin "Cargor" Schomburg
5 |
6 | cargBags is free software; you can redistribute it and/or
7 | modify it under the terms of the GNU General Public License
8 | as published by the Free Software Foundation; either version 2
9 | of the License, or (at your option) any later version.
10 |
11 | cargBags is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with cargBags; if not, write to the Free Software
18 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 |
20 | DESCRIPTION
21 | This file provides some API and database for additions to cargBags.
22 | They are only used in the layout and more experienced user
23 | may replace the functions with their own in their implementation.
24 | ]]
25 |
26 | local _, ns = ...
27 | local cargBags = ns.cargBags
28 | local Implementation = cargBags.classes.Implementation
29 | local Container = cargBags.classes.Container
30 | local ItemButton = cargBags.classes.ItemButton
31 |
32 | --[[################################
33 | Layouts
34 | Methods for positioning the buttons in a container
35 | ##################################]]
36 |
37 | Container.layouts = {}
38 |
39 | function Container:LayoutButtons(layout, ...)
40 | return self.layouts[layout](self, ...)
41 | end
42 |
43 |
44 | --[[################################
45 | Plugins
46 | Additional widgets for a bag
47 | ##################################]]
48 |
49 | cargBags.plugins = {}
50 |
51 | function Implementation:SpawnPlugin(name, ...)
52 | if(cargBags.plugins[name]) then
53 | local plugin = cargBags.plugins[name](self, ...)
54 | if(plugin) then
55 | plugin.parent = self
56 | end
57 | return plugin
58 | end
59 | end
60 | Container.SpawnPlugin = Implementation.SpawnPlugin
61 |
62 | function cargBags:RegisterPlugin(name, func)
63 | cargBags.plugins[name] = func
64 | end
65 |
66 |
67 | --[[################################
68 | Sorts
69 | Sort-functions for your containers
70 | ##################################]]
71 |
72 | Container.sorts = {}
73 |
74 | function Container:SortButtons(arg1)
75 | table.sort(self.buttons, self.sorts[arg1] or arg1)
76 | end
77 |
78 | --[[################################
79 | Scaffolds
80 | Templates for ItemButtons
81 | ##################################]]
82 |
83 | ItemButton.scaffolds = {}
84 |
85 | function ItemButton:Scaffold(name, ...)
86 | return self.scaffolds[name](self, ...)
87 | end
88 |
89 | function cargBags:RegisterScaffold(name, func)
90 | ItemButton.scaffolds[name] = func
91 | end
92 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/ActionBar/Bars/Stancebar.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local Bar = B:GetModule("Actionbar")
4 |
5 | local _G = _G
6 | local tinsert, mod, min, ceil = tinsert, mod, min, ceil
7 | local cfg = C.Bars.stancebar
8 | local margin, padding = C.Bars.margin, C.Bars.padding
9 |
10 | local num = NUM_STANCE_SLOTS
11 | --local NUM_POSSESS_SLOTS = NUM_POSSESS_SLOTS
12 |
13 | function Bar:UpdateStanceBar()
14 | local frame = _G["NDui_ActionBarStance"]
15 | if not frame then return end
16 |
17 | local size = C.db["Actionbar"]["BarStanceSize"]
18 | local fontSize = C.db["Actionbar"]["BarStanceFont"]
19 | local perRow = C.db["Actionbar"]["BarStancePerRow"]
20 |
21 | for i = 1, num do
22 | local button = frame.buttons[i]
23 | button:SetSize(size, size)
24 | if i < 11 then
25 | button:ClearAllPoints()
26 | if i == 1 then
27 | button:SetPoint("TOPLEFT", frame, padding, -padding)
28 | elseif mod(i-1, perRow) == 0 then
29 | button:SetPoint("TOP", frame.buttons[i-perRow], "BOTTOM", 0, -margin)
30 | else
31 | button:SetPoint("LEFT", frame.buttons[i-1], "RIGHT", margin, 0)
32 | end
33 | end
34 | Bar:UpdateFontSize(button, fontSize)
35 | end
36 |
37 | local column = min(num, perRow)
38 | local rows = ceil(num/perRow)
39 | frame:SetWidth(column*size + (column-1)*margin + 2*padding)
40 | frame:SetHeight(size*rows + (rows-1)*margin + 2*padding)
41 | frame.mover:SetSize(size, size)
42 | end
43 |
44 | function Bar:CreateStancebar()
45 | if not C.db["Actionbar"]["ShowStance"] then return end
46 |
47 | local buttonList = {}
48 | local frame = CreateFrame("Frame", "NDui_ActionBarStance", UIParent, "SecureHandlerStateTemplate")
49 | frame.mover = B.Mover(frame, L["StanceBar"], "StanceBar", {"BOTTOMLEFT", _G.NDui_ActionBar2, "TOPLEFT", 0, margin})
50 | Bar.movers[8] = frame.mover
51 |
52 | -- StanceBar
53 | StanceBarFrame:SetParent(frame)
54 | StanceBarFrame:EnableMouse(false)
55 | StanceBarLeft:SetTexture(nil)
56 | StanceBarMiddle:SetTexture(nil)
57 | StanceBarRight:SetTexture(nil)
58 |
59 | for i = 1, num do
60 | local button = _G["StanceButton"..i]
61 | tinsert(buttonList, button)
62 | tinsert(Bar.buttons, button)
63 | end
64 |
65 | -- PossessBar
66 | --[[ PossessBarFrame:SetParent(frame)
67 | PossessBarFrame:EnableMouse(false)
68 | PossessBackground1:SetTexture(nil)
69 | PossessBackground2:SetTexture(nil)
70 |
71 | for i = 1, NUM_POSSESS_SLOTS do
72 | local button = _G["PossessButton"..i]
73 | tinsert(buttonList, button)
74 | button:ClearAllPoints()
75 | button:SetPoint("CENTER", buttonList[i])
76 | end]]
77 |
78 | frame.buttons = buttonList
79 |
80 | frame.frameVisibility = "[petbattle][overridebar][vehicleui][possessbar,@vehicle,exists][shapeshift] hide; show"
81 | RegisterStateDriver(frame, "visibility", frame.frameVisibility)
82 |
83 | if cfg.fader then
84 | Bar.CreateButtonFrameFader(frame, buttonList, cfg.fader)
85 | end
86 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/ActionBar/ButtonRange.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:RegisterModule("ButtonRange")
4 |
5 | local next, pairs, unpack = next, pairs, unpack
6 | local HasAction, IsUsableAction, IsActionInRange = HasAction, IsUsableAction, IsActionInRange
7 |
8 | local UPDATE_DELAY = .2
9 | local buttonColors, buttonsToUpdate = {}, {}
10 | local updater = CreateFrame("Frame")
11 |
12 | local colors = {
13 | ["normal"] = {1, 1, 1},
14 | ["oor"] = {.8, .1, .1},
15 | ["oom"] = {.5, .5, 1},
16 | ["unusable"] = {.3, .3, .3}
17 | }
18 |
19 | function module:OnUpdateRange(elapsed)
20 | self.elapsed = (self.elapsed or UPDATE_DELAY) - elapsed
21 | if self.elapsed <= 0 then
22 | self.elapsed = UPDATE_DELAY
23 |
24 | if not module:UpdateButtons() then
25 | self:Hide()
26 | end
27 | end
28 | end
29 | updater:SetScript("OnUpdate", module.OnUpdateRange)
30 |
31 | function module:UpdateButtons()
32 | if next(buttonsToUpdate) then
33 | for button in pairs(buttonsToUpdate) do
34 | self.UpdateButtonUsable(button)
35 | end
36 | return true
37 | end
38 |
39 | return false
40 | end
41 |
42 | function module:UpdateButtonStatus()
43 | local action = self.action
44 |
45 | if action and self:IsVisible() and HasAction(action) then
46 | buttonsToUpdate[self] = true
47 | else
48 | buttonsToUpdate[self] = nil
49 | end
50 |
51 | if next(buttonsToUpdate) then
52 | updater:Show()
53 | end
54 | end
55 |
56 | function module:UpdateButtonUsable(force)
57 | if force then
58 | buttonColors[self] = nil
59 | end
60 |
61 | local action = self.action
62 | local isUsable, notEnoughMana = IsUsableAction(action)
63 |
64 | if isUsable then
65 | local inRange = IsActionInRange(action)
66 | if inRange == false then
67 | module.SetButtonColor(self, "oor")
68 | else
69 | module.SetButtonColor(self, "normal")
70 | end
71 | elseif notEnoughMana then
72 | module.SetButtonColor(self, "oom")
73 | else
74 | module.SetButtonColor(self, "unusable")
75 | end
76 | end
77 |
78 | function module:SetButtonColor(colorIndex)
79 | if buttonColors[self] == colorIndex then return end
80 | buttonColors[self] = colorIndex
81 |
82 | local r, g, b = unpack(colors[colorIndex])
83 | self.icon:SetVertexColor(r, g, b)
84 | end
85 |
86 | function module:Register()
87 | self:HookScript("OnShow", module.UpdateButtonStatus)
88 | self:HookScript("OnHide", module.UpdateButtonStatus)
89 | self:SetScript("OnUpdate", nil)
90 | module.UpdateButtonStatus(self)
91 | end
92 |
93 | local function button_UpdateUsable(button)
94 | module.UpdateButtonUsable(button, true)
95 | end
96 |
97 | function module:OnLogin()
98 | hooksecurefunc("ActionButton_OnUpdate", self.Register)
99 | hooksecurefunc("ActionButton_Update", self.UpdateButtonStatus)
100 | hooksecurefunc("ActionButton_UpdateUsable", button_UpdateUsable)
101 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/oUF/Elements/phaseindicator.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | # Element: Phasing Indicator
3 |
4 | Toggles the visibility of an indicator based on the unit's phasing relative to the player.
5 |
6 | ## Widget
7 |
8 | PhaseIndicator - Any UI widget.
9 |
10 | ## Notes
11 |
12 | A default texture will be applied if the widget is a Texture and doesn't have a texture or a color set.
13 |
14 | ## Examples
15 |
16 | -- Position and size
17 | local PhaseIndicator = self:CreateTexture(nil, 'OVERLAY')
18 | PhaseIndicator:SetSize(16, 16)
19 | PhaseIndicator:SetPoint('TOPLEFT', self)
20 |
21 | -- Register it with oUF
22 | self.PhaseIndicator = PhaseIndicator
23 | --]]
24 |
25 | local _, ns = ...
26 | local oUF = ns.oUF
27 |
28 | local function Update(self, event, unit)
29 | if(self.unit ~= unit) then return end
30 |
31 | local element = self.PhaseIndicator
32 |
33 | --[[ Callback: PhaseIndicator:PreUpdate()
34 | Called before the element has been updated.
35 |
36 | * self - the PhaseIndicator element
37 | --]]
38 | if(element.PreUpdate) then
39 | element:PreUpdate()
40 | end
41 |
42 | local isInSamePhase = UnitInPhase(unit)
43 | if(not isInSamePhase and UnitIsPlayer(unit) and UnitIsConnected(unit)) then
44 | element:Show()
45 | else
46 | element:Hide()
47 | end
48 |
49 | --[[ Callback: PhaseIndicator:PostUpdate(isInSamePhase)
50 | Called after the element has been updated.
51 |
52 | * self - the PhaseIndicator element
53 | * isInSamePhase - indicates whether the unit is in the same phase as the player (boolean)
54 | --]]
55 | if(element.PostUpdate) then
56 | return element:PostUpdate(isInSamePhase)
57 | end
58 | end
59 |
60 | local function Path(self, ...)
61 | --[[ Override: PhaseIndicator.Override(self, event, ...)
62 | Used to completely override the internal update function.
63 |
64 | * self - the parent object
65 | * event - the event triggering the update (string)
66 | * ... - the arguments accompanying the event
67 | --]]
68 | return (self.PhaseIndicator.Override or Update) (self, ...)
69 | end
70 |
71 | local function ForceUpdate(element)
72 | return Path(element.__owner, 'ForceUpdate', element.__owner.unit)
73 | end
74 |
75 | local function Enable(self)
76 | local element = self.PhaseIndicator
77 | if(element) then
78 | element.__owner = self
79 | element.ForceUpdate = ForceUpdate
80 |
81 | self:RegisterEvent('UNIT_PHASE', Path)
82 |
83 | if(element:IsObjectType('Texture') and not element:GetTexture()) then
84 | element:SetTexture([[Interface\TargetingFrame\UI-PhasingIcon]])
85 | end
86 |
87 | return true
88 | end
89 | end
90 |
91 | local function Disable(self)
92 | local element = self.PhaseIndicator
93 | if(element) then
94 | element:Hide()
95 |
96 | self:UnregisterEvent('UNIT_PHASE', Path)
97 | end
98 | end
99 |
100 | oUF:AddElement('PhaseIndicator', Path, Enable, Disable)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/oUF/Elements/combatindicator.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | # Element: Combat Indicator
3 |
4 | Toggles the visibility of an indicator based on the player's combat status.
5 |
6 | ## Widget
7 |
8 | CombatIndicator - Any UI widget.
9 |
10 | ## Notes
11 |
12 | A default texture will be applied if the widget is a Texture and doesn't have a texture or a color set.
13 |
14 | ## Examples
15 |
16 | -- Position and size
17 | local CombatIndicator = self:CreateTexture(nil, 'OVERLAY')
18 | CombatIndicator:SetSize(16, 16)
19 | CombatIndicator:SetPoint('TOP', self)
20 |
21 | -- Register it with oUF
22 | self.CombatIndicator = CombatIndicator
23 | --]]
24 |
25 | local _, ns = ...
26 | local oUF = ns.oUF
27 |
28 | local function Update(self, event)
29 | local element = self.CombatIndicator
30 |
31 | --[[ Callback: CombatIndicator:PreUpdate()
32 | Called before the element has been updated.
33 |
34 | * self - the CombatIndicator element
35 | --]]
36 | if(element.PreUpdate) then
37 | element:PreUpdate()
38 | end
39 |
40 | local inCombat = UnitAffectingCombat('player')
41 | if(inCombat) then
42 | element:Show()
43 | else
44 | element:Hide()
45 | end
46 |
47 | --[[ Callback: CombatIndicator:PostUpdate(inCombat)
48 | Called after the element has been updated.
49 |
50 | * self - the CombatIndicator element
51 | * inCombat - indicates if the player is affecting combat (boolean)
52 | --]]
53 | if(element.PostUpdate) then
54 | return element:PostUpdate(inCombat)
55 | end
56 | end
57 |
58 | local function Path(self, ...)
59 | --[[ Override: CombatIndicator.Override(self, event)
60 | Used to completely override the internal update function.
61 |
62 | * self - the parent object
63 | * event - the event triggering the update (string)
64 | --]]
65 | return (self.CombatIndicator.Override or Update) (self, ...)
66 | end
67 |
68 | local function ForceUpdate(element)
69 | return Path(element.__owner, 'ForceUpdate')
70 | end
71 |
72 | local function Enable(self, unit)
73 | local element = self.CombatIndicator
74 | if(element and UnitIsUnit(unit, 'player')) then
75 | element.__owner = self
76 | element.ForceUpdate = ForceUpdate
77 |
78 | self:RegisterEvent('PLAYER_REGEN_DISABLED', Path, true)
79 | self:RegisterEvent('PLAYER_REGEN_ENABLED', Path, true)
80 |
81 | if(element:IsObjectType('Texture') and not element:GetTexture()) then
82 | element:SetTexture([[Interface\CharacterFrame\UI-StateIcon]])
83 | element:SetTexCoord(.5, 1, 0, .49)
84 | end
85 |
86 | return true
87 | end
88 | end
89 |
90 | local function Disable(self)
91 | local element = self.CombatIndicator
92 | if(element) then
93 | element:Hide()
94 |
95 | self:UnregisterEvent('PLAYER_REGEN_DISABLED', Path)
96 | self:UnregisterEvent('PLAYER_REGEN_ENABLED', Path)
97 | end
98 | end
99 |
100 | oUF:AddElement('CombatIndicator', Path, Enable, Disable)
101 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/oUF/Elements/assistantindicator.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | # Element: Assistant Indicator
3 |
4 | Toggles the visibility of an indicator based on the unit's raid assistant status.
5 |
6 | ## Widget
7 |
8 | AssistantIndicator - Any UI widget.
9 |
10 | ## Notes
11 |
12 | A default texture will be applied if the widget is a Texture and doesn't have a texture or a color set.
13 |
14 | ## Examples
15 |
16 | -- Position and size
17 | local AssistantIndicator = self:CreateTexture(nil, 'OVERLAY')
18 | AssistantIndicator:SetSize(16, 16)
19 | AssistantIndicator:SetPoint('TOP', self)
20 |
21 | -- Register it with oUF
22 | self.AssistantIndicator = AssistantIndicator
23 | --]]
24 |
25 | local _, ns = ...
26 | local oUF = ns.oUF
27 |
28 | local function Update(self, event)
29 | local element = self.AssistantIndicator
30 | local unit = self.unit
31 |
32 | --[[ Callback: AssistantIndicator:PreUpdate()
33 | Called before the element has been updated.
34 |
35 | * self - the AssistantIndicator element
36 | --]]
37 | if(element.PreUpdate) then
38 | element:PreUpdate()
39 | end
40 |
41 | local isAssistant = UnitInRaid(unit) and UnitIsGroupAssistant(unit) and not UnitIsGroupLeader(unit)
42 | if(isAssistant) then
43 | element:Show()
44 | else
45 | element:Hide()
46 | end
47 |
48 | --[[ Callback: AssistantIndicator:PostUpdate(isAssistant)
49 | Called after the element has been updated.
50 |
51 | * self - the AssistantIndicator element
52 | * isAssistant - indicates whether the unit is a raid assistant (boolean)
53 | --]]
54 | if(element.PostUpdate) then
55 | return element:PostUpdate(isAssistant)
56 | end
57 | end
58 |
59 | local function Path(self, ...)
60 | --[[ Override: AssistantIndicator.Override(self, event, ...)
61 | Used to completely override the element's update process.
62 |
63 | * self - the parent object
64 | * event - the event triggering the update (string)
65 | * ... - the arguments accompanying the event (string)
66 | --]]
67 | return (self.AssistantIndicator.Override or Update) (self, ...)
68 | end
69 |
70 | local function ForceUpdate(element)
71 | return Path(element.__owner, 'ForceUpdate')
72 | end
73 |
74 | local function Enable(self)
75 | local element = self.AssistantIndicator
76 | if(element) then
77 | element.__owner = self
78 | element.ForceUpdate = ForceUpdate
79 |
80 | self:RegisterEvent('GROUP_ROSTER_UPDATE', Path, true)
81 |
82 | if(element:IsObjectType('Texture') and not element:GetTexture()) then
83 | element:SetTexture([[Interface\GroupFrame\UI-Group-AssistantIcon]])
84 | end
85 |
86 | return true
87 | end
88 | end
89 |
90 | local function Disable(self)
91 | local element = self.AssistantIndicator
92 | if(element) then
93 | element:Hide()
94 |
95 | self:UnregisterEvent('GROUP_ROSTER_UPDATE', Path)
96 | end
97 | end
98 |
99 | oUF:AddElement('AssistantIndicator', Path, Enable, Disable)
100 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/oUF/Elements/leaderindicator.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | # Element: Leader Indicator
3 |
4 | Toggles the visibility of an indicator based on the unit's leader status.
5 |
6 | ## Widget
7 |
8 | LeaderIndicator - Any UI widget.
9 |
10 | ## Notes
11 |
12 | A default texture will be applied if the widget is a Texture and doesn't have a texture or a color set.
13 |
14 | ## Examples
15 |
16 | -- Position and size
17 | local LeaderIndicator = self:CreateTexture(nil, 'OVERLAY')
18 | LeaderIndicator:SetSize(16, 16)
19 | LeaderIndicator:SetPoint('BOTTOM', self, 'TOP')
20 |
21 | -- Register it with oUF
22 | self.LeaderIndicator = LeaderIndicator
23 | --]]
24 |
25 | local _, ns = ...
26 | local oUF = ns.oUF
27 |
28 | local function Update(self, event)
29 | local element = self.LeaderIndicator
30 | local unit = self.unit
31 |
32 | --[[ Callback: LeaderIndicator:PreUpdate()
33 | Called before the element has been updated.
34 |
35 | * self - the LeaderIndicator element
36 | --]]
37 | if(element.PreUpdate) then
38 | element:PreUpdate()
39 | end
40 |
41 | local isLeader = (UnitInParty(unit) or UnitInRaid(unit)) and UnitIsGroupLeader(unit)
42 | if(isLeader) then
43 | element:Show()
44 | else
45 | element:Hide()
46 | end
47 |
48 | --[[ Callback: LeaderIndicator:PostUpdate(isLeader)
49 | Called after the element has been updated.
50 |
51 | * self - the LeaderIndicator element
52 | * isLeader - indicates whether the element is shown (boolean)
53 | --]]
54 | if(element.PostUpdate) then
55 | return element:PostUpdate(isLeader)
56 | end
57 | end
58 |
59 | local function Path(self, ...)
60 | --[[ Override: LeaderIndicator.Override(self, event, ...)
61 | Used to completely override the internal update function.
62 |
63 | * self - the parent object
64 | * event - the event triggering the update (string)
65 | * ... - the arguments accompanying the event
66 | --]]
67 | return (self.LeaderIndicator.Override or Update) (self, ...)
68 | end
69 |
70 | local function ForceUpdate(element)
71 | return Path(element.__owner, 'ForceUpdate')
72 | end
73 |
74 | local function Enable(self)
75 | local element = self.LeaderIndicator
76 | if(element) then
77 | element.__owner = self
78 | element.ForceUpdate = ForceUpdate
79 |
80 | self:RegisterEvent('PARTY_LEADER_CHANGED', Path, true)
81 | self:RegisterEvent('GROUP_ROSTER_UPDATE', Path, true)
82 |
83 | if(element:IsObjectType('Texture') and not element:GetTexture()) then
84 | element:SetTexture([[Interface\GroupFrame\UI-Group-LeaderIcon]])
85 | end
86 |
87 | return true
88 | end
89 | end
90 |
91 | local function Disable(self)
92 | local element = self.LeaderIndicator
93 | if(element) then
94 | element:Hide()
95 |
96 | self:UnregisterEvent('PARTY_LEADER_CHANGED', Path)
97 | self:UnregisterEvent('GROUP_ROSTER_UPDATE', Path)
98 | end
99 | end
100 |
101 | oUF:AddElement('LeaderIndicator', Path, Enable, Disable)
102 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/InterfaceOptionsFrame.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | local styled = false
6 |
7 | InterfaceOptionsFrame:HookScript("OnShow", function()
8 | if styled then return end
9 |
10 | B.StripTextures(InterfaceOptionsFrameTab1)
11 | B.StripTextures(InterfaceOptionsFrameTab2)
12 | B.StripTextures(InterfaceOptionsFrameCategories)
13 | B.StripTextures(InterfaceOptionsFramePanelContainer)
14 | B.StripTextures(InterfaceOptionsFrameAddOns)
15 | B.StripTextures(InterfaceOptionsFrame)
16 | B.SetBD(InterfaceOptionsFrame)
17 |
18 | InterfaceOptionsFrameHeader:SetTexture("")
19 | InterfaceOptionsFrameHeader:ClearAllPoints()
20 | InterfaceOptionsFrameHeader:SetPoint("TOP", InterfaceOptionsFrame)
21 |
22 | B.Reskin(InterfaceOptionsFrameDefaults)
23 | B.Reskin(InterfaceOptionsFrameOkay)
24 | B.Reskin(InterfaceOptionsFrameCancel)
25 |
26 | if CompactUnitFrameProfilesGeneralOptionsFrameAutoActivateBG then
27 | CompactUnitFrameProfilesGeneralOptionsFrameAutoActivateBG:Hide()
28 | end
29 |
30 | local line = InterfaceOptionsFrame:CreateTexture(nil, "ARTWORK")
31 | line:SetSize(C.mult, 546)
32 | line:SetPoint("LEFT", 205, 10)
33 | line:SetColorTexture(1, 1, 1, .25)
34 |
35 | local interfacePanels = {
36 | "InterfaceOptionsControlsPanel",
37 | "InterfaceOptionsCombatPanel",
38 | "InterfaceOptionsDisplayPanel",
39 | "InterfaceOptionsSocialPanel",
40 | "InterfaceOptionsActionBarsPanel",
41 | "InterfaceOptionsNamesPanel",
42 | "InterfaceOptionsNamesPanelFriendly",
43 | "InterfaceOptionsNamesPanelEnemy",
44 | "InterfaceOptionsNamesPanelUnitNameplates",
45 | "InterfaceOptionsCameraPanel",
46 | "InterfaceOptionsMousePanel",
47 | "InterfaceOptionsAccessibilityPanel",
48 | "CompactUnitFrameProfiles",
49 | "CompactUnitFrameProfilesGeneralOptionsFrame",
50 | }
51 | for _, name in pairs(interfacePanels) do
52 | local frame = _G[name]
53 | if frame then
54 | for i = 1, frame:GetNumChildren() do
55 | local child = select(i, frame:GetChildren())
56 | if child:IsObjectType("CheckButton") then
57 | B.ReskinCheck(child)
58 | elseif child:IsObjectType("Button") then
59 | B.Reskin(child)
60 | elseif child:IsObjectType("Slider") then
61 | B.ReskinSlider(child)
62 | elseif child:IsObjectType("Frame") and child.Left and child.Middle and child.Right then
63 | B.ReskinDropDown(child)
64 | end
65 | end
66 | else
67 | if DB.isDeveloper then print(name, "not found.") end
68 | end
69 | end
70 |
71 | styled = true
72 | end)
73 |
74 | hooksecurefunc("InterfaceOptions_AddCategory", function()
75 | for i = 1, #INTERFACEOPTIONS_ADDONCATEGORIES do
76 | local bu = _G["InterfaceOptionsFrameAddOnsButton"..i.."Toggle"]
77 | if bu and not bu.styled then
78 | B.ReskinCollapse(bu)
79 | bu:GetPushedTexture():SetAlpha(0)
80 |
81 | bu.styled = true
82 | end
83 | end
84 | end)
85 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/ActionBar/Bars/Hide_blizzart.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local Bar = B:GetModule("Actionbar")
4 |
5 | local _G = _G
6 | local next, tonumber = next, tonumber
7 | local ACTION_BUTTON_SHOW_GRID_REASON_CVAR = ACTION_BUTTON_SHOW_GRID_REASON_CVAR
8 |
9 | local scripts = {
10 | "OnShow", "OnHide", "OnEvent", "OnEnter", "OnLeave", "OnUpdate", "OnValueChanged", "OnClick", "OnMouseDown", "OnMouseUp",
11 | }
12 |
13 | local framesToHide = {
14 | MainMenuBar, OverrideActionBar,
15 | }
16 |
17 | local framesToDisable = {
18 | MainMenuBar,
19 | MicroButtonAndBagsBar, MainMenuBarArtFrame, StatusTrackingBarManager,
20 | ActionBarDownButton, ActionBarUpButton,
21 | OverrideActionBar,
22 | OverrideActionBarExpBar, OverrideActionBarHealthBar, OverrideActionBarPowerBar, OverrideActionBarPitchFrame,
23 | }
24 |
25 | local function DisableAllScripts(frame)
26 | for _, script in next, scripts do
27 | if frame:HasScript(script) then
28 | frame:SetScript(script, nil)
29 | end
30 | end
31 | end
32 |
33 | function Bar:HideBlizz()
34 | MainMenuBar:SetMovable(true)
35 | MainMenuBar:SetUserPlaced(true)
36 | MainMenuBar.ignoreFramePositionManager = true
37 | MainMenuBar:SetAttribute("ignoreFramePositionManager", true)
38 |
39 | for _, frame in next, framesToHide do
40 | frame:SetParent(B.HiddenFrame)
41 | end
42 |
43 | for _, frame in next, framesToDisable do
44 | frame:UnregisterAllEvents()
45 | DisableAllScripts(frame)
46 | end
47 |
48 | -- Update button grid
49 | local function buttonShowGrid(name, showgrid)
50 | for i = 1, 12 do
51 | local button = _G[name..i]
52 | if button then
53 | button:SetAttribute("showgrid", showgrid)
54 | ActionButton_ShowGrid(button, ACTION_BUTTON_SHOW_GRID_REASON_CVAR)
55 | end
56 | end
57 | end
58 |
59 | local updateAfterCombat
60 | local function ToggleButtonGrid()
61 | if InCombatLockdown() then
62 | updateAfterCombat = true
63 | B:RegisterEvent("PLAYER_REGEN_ENABLED", ToggleButtonGrid)
64 | else
65 | local showgrid = tonumber(GetCVar("alwaysShowActionBars"))
66 | buttonShowGrid("ActionButton", showgrid)
67 | buttonShowGrid("MultiBarBottomLeftButton", showgrid)
68 | buttonShowGrid("MultiBarBottomRightButton", showgrid)
69 | buttonShowGrid("MultiBarRightButton", showgrid)
70 | buttonShowGrid("MultiBarLeftButton", showgrid)
71 | buttonShowGrid("NDui_ActionBarXButton", showgrid)
72 | if updateAfterCombat then
73 | B:UnregisterEvent("PLAYER_REGEN_ENABLED", ToggleButtonGrid)
74 | updateAfterCombat = false
75 | end
76 | end
77 | end
78 | hooksecurefunc("MultiActionBar_UpdateGridVisibility", ToggleButtonGrid)
79 | hooksecurefunc("MultiActionBar_HideAllGrids", ToggleButtonGrid)
80 | B:RegisterEvent("ACTIONBAR_HIDEGRID", ToggleButtonGrid)
81 | ToggleButtonGrid()
82 |
83 | -- Hide blizz options
84 | SetCVar("multiBarRightVerticalLayout", 0)
85 | InterfaceOptionsActionBarsPanelStackRightBars:EnableMouse(false)
86 | InterfaceOptionsActionBarsPanelStackRightBars:SetAlpha(0)
87 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/Blizzard/FrameXML/CompactRaidFrames.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | tinsert(C.defaultThemes, function()
5 | if not IsAddOnLoaded("Blizzard_CUFProfiles") then return end
6 | if not IsAddOnLoaded("Blizzard_CompactRaidFrames") then return end
7 | if not CompactRaidFrameManagerToggleButton then return end
8 |
9 | CompactRaidFrameManagerToggleButton:SetNormalTexture("Interface\\Buttons\\UI-ColorPicker-Buttons")
10 | CompactRaidFrameManagerToggleButton:GetNormalTexture():SetTexCoord(.15, .39, 0, 1)
11 | CompactRaidFrameManagerToggleButton:SetSize(15, 15)
12 | hooksecurefunc("CompactRaidFrameManager_Collapse", function()
13 | CompactRaidFrameManagerToggleButton:GetNormalTexture():SetTexCoord(.15, .39, 0, 1)
14 | end)
15 | hooksecurefunc("CompactRaidFrameManager_Expand", function()
16 | CompactRaidFrameManagerToggleButton:GetNormalTexture():SetTexCoord(.86, 1, 0, 1)
17 | end)
18 |
19 | local buttons = {
20 | CompactRaidFrameManagerDisplayFrameFilterOptionsFilterRoleTank,
21 | CompactRaidFrameManagerDisplayFrameFilterOptionsFilterRoleHealer,
22 | CompactRaidFrameManagerDisplayFrameFilterOptionsFilterRoleDamager,
23 | CompactRaidFrameManagerDisplayFrameFilterOptionsFilterGroup1,
24 | CompactRaidFrameManagerDisplayFrameFilterOptionsFilterGroup2,
25 | CompactRaidFrameManagerDisplayFrameFilterOptionsFilterGroup3,
26 | CompactRaidFrameManagerDisplayFrameFilterOptionsFilterGroup4,
27 | CompactRaidFrameManagerDisplayFrameFilterOptionsFilterGroup5,
28 | CompactRaidFrameManagerDisplayFrameFilterOptionsFilterGroup6,
29 | CompactRaidFrameManagerDisplayFrameFilterOptionsFilterGroup7,
30 | CompactRaidFrameManagerDisplayFrameFilterOptionsFilterGroup8,
31 | CompactRaidFrameManagerDisplayFrameLeaderOptionsInitiateRolePoll,
32 | CompactRaidFrameManagerDisplayFrameLeaderOptionsInitiateReadyCheck,
33 | CompactRaidFrameManagerDisplayFrameLeaderOptionsRaidWorldMarkerButton,
34 | CompactRaidFrameManagerDisplayFrameLockedModeToggle,
35 | CompactRaidFrameManagerDisplayFrameHiddenModeToggle,
36 | CompactRaidFrameManagerDisplayFrameConvertToRaid
37 | }
38 | for _, button in pairs(buttons) do
39 | for i = 1, 9 do
40 | select(i, button:GetRegions()):SetAlpha(0)
41 | end
42 | B.Reskin(button)
43 | end
44 | -- CompactRaidFrameManagerDisplayFrameLeaderOptionsRaidWorldMarkerButton:SetNormalTexture("Interface\\RaidFrame\\Raid-WorldPing")
45 |
46 | for i = 1, 8 do
47 | select(i, CompactRaidFrameManager:GetRegions()):SetAlpha(0)
48 | end
49 | select(1, CompactRaidFrameManagerDisplayFrameFilterOptions:GetRegions()):SetAlpha(0)
50 | select(1, CompactRaidFrameManagerDisplayFrame:GetRegions()):SetAlpha(0)
51 | select(4, CompactRaidFrameManagerDisplayFrame:GetRegions()):SetAlpha(0)
52 |
53 | local bd = B.CreateBDFrame(CompactRaidFrameManager, nil, true)
54 | bd:SetPoint("TOPLEFT")
55 | bd:SetPoint("BOTTOMRIGHT", -9, 9)
56 | B.ReskinDropDown(CompactRaidFrameManagerDisplayFrameProfileSelector)
57 | B.ReskinCheck(CompactRaidFrameManagerDisplayFrameEveryoneIsAssistButton)
58 | end)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Modules/Skins/AddOns/WeakAuras.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local S = B:GetModule("Skins")
4 |
5 | local pairs, unpack = pairs, unpack
6 |
7 | local function IconBgOnUpdate(self)
8 | self:SetAlpha(self.__icon:GetAlpha())
9 | if self.__shadow then
10 | self.__shadow:SetAlpha(self.__icon:GetAlpha())
11 | end
12 | end
13 |
14 | local function UpdateIconTexCoord(icon)
15 | if icon.isCutting then return end
16 | icon.isCutting = true
17 |
18 | local width, height = icon:GetSize()
19 | if width ~= 0 and height ~= 0 then
20 | local left, right, top, bottom = unpack(DB.TexCoord) -- normal icon
21 | local ratio = width/height
22 | if ratio > 1 then -- fat icon
23 | local offset = (1 - 1/ratio) / 2
24 | top = top + offset
25 | bottom = bottom - offset
26 | elseif ratio < 1 then -- thin icon
27 | local offset = (1 - ratio) / 2
28 | left = left + offset
29 | bottom = bottom - offset
30 | end
31 | icon:SetTexCoord(left, right, top, bottom)
32 | end
33 |
34 | icon.isCutting = nil
35 | end
36 |
37 | local function Skin_WeakAuras(f, fType)
38 | if fType == "icon" then
39 | if not f.styled then
40 | UpdateIconTexCoord(f.icon)
41 | hooksecurefunc(f.icon, "SetTexCoord", UpdateIconTexCoord)
42 | f.bg = B.SetBD(f, 0)
43 | f.bg:SetFrameLevel(0)
44 | f.bg.__icon = f.icon
45 | f.bg:HookScript("OnUpdate", IconBgOnUpdate)
46 |
47 | f.styled = true
48 | end
49 | elseif fType == "aurabar" then
50 | if not f.styled then
51 | f.bg = B.SetBD(f.bar, 0)
52 | f.bg:SetFrameLevel(0)
53 | UpdateIconTexCoord(f.icon)
54 | hooksecurefunc(f.icon, "SetTexCoord", UpdateIconTexCoord)
55 | f.iconFrame:SetAllPoints(f.icon) -- needs review
56 | B.SetBD(f.iconFrame)
57 |
58 | f.styled = true
59 | end
60 | end
61 | end
62 |
63 | local function ReskinWA()
64 | if not C.db["Skins"]["WeakAuras"] then return end
65 |
66 | local regionTypes = WeakAuras.regionTypes
67 | local Create_Icon, Modify_Icon = regionTypes.icon.create, regionTypes.icon.modify
68 | local Create_AuraBar, Modify_AuraBar = regionTypes.aurabar.create, regionTypes.aurabar.modify
69 |
70 | regionTypes.icon.create = function(parent, data)
71 | local region = Create_Icon(parent, data)
72 | Skin_WeakAuras(region, "icon")
73 | return region
74 | end
75 |
76 | regionTypes.aurabar.create = function(parent)
77 | local region = Create_AuraBar(parent)
78 | Skin_WeakAuras(region, "aurabar")
79 | return region
80 | end
81 |
82 | regionTypes.icon.modify = function(parent, region, data)
83 | Modify_Icon(parent, region, data)
84 | Skin_WeakAuras(region, "icon")
85 | end
86 |
87 | regionTypes.aurabar.modify = function(parent, region, data)
88 | Modify_AuraBar(parent, region, data)
89 | Skin_WeakAuras(region, "aurabar")
90 | end
91 |
92 | for _, regions in pairs(WeakAuras.regions) do
93 | if regions.regionType == "icon" or regions.regionType == "aurabar" then
94 | Skin_WeakAuras(regions.region, regions.regionType)
95 | end
96 | end
97 | end
98 |
99 | S:RegisterSkin("WeakAuras", ReskinWA)
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Core/Smooth.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 |
4 | -- ls_UI, lightspark
5 | local next, Lerp = next, Lerp
6 | local abs = math.abs
7 |
8 | local activeObjects = {}
9 | local handledObjects = {}
10 |
11 | local TARGET_FPS = 60
12 | local AMOUNT = .33
13 |
14 | local function clamp(v, min, max)
15 | min = min or 0
16 | max = max or 1
17 | v = tonumber(v)
18 |
19 | if v > max then
20 | return max
21 | elseif v < min then
22 | return min
23 | end
24 |
25 | return v
26 | end
27 |
28 | local function isCloseEnough(new, target, range)
29 | if range > 0 then
30 | return abs((new - target) / range) <= .001
31 | end
32 |
33 | return true
34 | end
35 |
36 | local frame = CreateFrame("Frame")
37 |
38 | local function onUpdate(_, elapsed)
39 | for object, target in next, activeObjects do
40 | local new = Lerp(object._value, target, clamp(AMOUNT * elapsed * TARGET_FPS))
41 | if isCloseEnough(new, target, object._max - object._min) then
42 | new = target
43 | activeObjects[object] = nil
44 | end
45 |
46 | object:SetValue_(new)
47 | object._value = new
48 | end
49 | end
50 |
51 | local function bar_SetSmoothedValue(self, value)
52 | self._value = self:GetValue()
53 | activeObjects[self] = clamp(value, self._min, self._max)
54 | end
55 |
56 | local function bar_SetSmoothedMinMaxValues(self, min, max)
57 | self:SetMinMaxValues_(min, max)
58 |
59 | if self._max and self._max ~= max then
60 | local ratio = 1
61 | if max ~= 0 and self._max and self._max ~= 0 then
62 | ratio = max / (self._max or max)
63 | end
64 |
65 | local target = activeObjects[self]
66 | if target then
67 | activeObjects[self] = target * ratio
68 | end
69 |
70 | local cur = self._value
71 | if cur then
72 | self:SetValue_(cur * ratio)
73 | self._value = cur * ratio
74 | end
75 | end
76 |
77 | self._min = min
78 | self._max = max
79 | end
80 |
81 | function B:SmoothBar(bar)
82 | bar._min, bar._max = bar:GetMinMaxValues()
83 | bar._value = bar:GetValue()
84 |
85 | bar.SetValue_ = bar.SetValue
86 | bar.SetMinMaxValues_ = bar.SetMinMaxValues
87 | bar.SetValue = bar_SetSmoothedValue
88 | bar.SetMinMaxValues = bar_SetSmoothedMinMaxValues
89 |
90 | handledObjects[bar] = true
91 |
92 | if not frame:GetScript("OnUpdate") then
93 | frame:SetScript("OnUpdate", onUpdate)
94 | end
95 | end
96 |
97 | function B:DesmoothBar(bar)
98 | if activeObjects[bar] then
99 | bar:SetValue_(activeObjects[bar])
100 | activeObjects[bar] = nil
101 | end
102 |
103 | if bar.SetValue_ then
104 | bar.SetValue = bar.SetValue_
105 | bar.SetValue_ = nil
106 | end
107 |
108 | if bar.SetMinMaxValues_ then
109 | bar.SetMinMaxValues = bar.SetMinMaxValues_
110 | bar.SetMinMaxValues_ = nil
111 | end
112 |
113 | handledObjects[bar] = nil
114 |
115 | if not next(handledObjects) then
116 | frame:SetScript("OnUpdate", nil)
117 | end
118 | end
119 |
120 | function B:SetSmoothingAmount(amount)
121 | AMOUNT = clamp(amount, .1, 1)
122 | end
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/oUF/Elements/raidtargetindicator.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | # Element: Raid Target Indicator
3 |
4 | Handles the visibility and updating of an indicator based on the unit's raid target assignment.
5 |
6 | ## Widget
7 |
8 | RaidTargetIndicator - A `Texture` used to display the raid target icon.
9 |
10 | ## Notes
11 |
12 | A default texture will be applied if the widget is a Texture and doesn't have a texture set.
13 |
14 | ## Examples
15 |
16 | -- Position and size
17 | local RaidTargetIndicator = self:CreateTexture(nil, 'OVERLAY')
18 | RaidTargetIndicator:SetSize(16, 16)
19 | RaidTargetIndicator:SetPoint('TOPRIGHT', self)
20 |
21 | -- Register it with oUF
22 | self.RaidTargetIndicator = RaidTargetIndicator
23 | --]]
24 |
25 | local _, ns = ...
26 | local oUF = ns.oUF
27 |
28 | local GetRaidTargetIndex = GetRaidTargetIndex
29 | local SetRaidTargetIconTexture = SetRaidTargetIconTexture
30 |
31 | local function Update(self, event)
32 | local element = self.RaidTargetIndicator
33 |
34 | --[[ Callback: RaidTargetIndicator:PreUpdate()
35 | Called before the element has been updated.
36 |
37 | * self - the RaidTargetIndicator element
38 | --]]
39 | if(element.PreUpdate) then
40 | element:PreUpdate()
41 | end
42 |
43 | local index = GetRaidTargetIndex(self.unit)
44 | if(index) then
45 | SetRaidTargetIconTexture(element, index)
46 | element:Show()
47 | else
48 | element:Hide()
49 | end
50 |
51 | --[[ Callback: RaidTargetIndicator:PostUpdate(index)
52 | Called after the element has been updated.
53 |
54 | * self - the RaidTargetIndicator element
55 | * index - the index of the raid target marker (number?)[1-8]
56 | --]]
57 | if(element.PostUpdate) then
58 | return element:PostUpdate(index)
59 | end
60 | end
61 |
62 | local function Path(self, ...)
63 | --[[ Override: RaidTargetIndicator.Override(self, event)
64 | Used to completely override the internal update function.
65 |
66 | * self - the parent object
67 | * event - the event triggering the update (string)
68 | --]]
69 | return (self.RaidTargetIndicator.Override or Update) (self, ...)
70 | end
71 |
72 | local function ForceUpdate(element)
73 | if(not element.__owner.unit) then return end
74 | return Path(element.__owner, 'ForceUpdate')
75 | end
76 |
77 | local function Enable(self)
78 | local element = self.RaidTargetIndicator
79 | if(element) then
80 | element.__owner = self
81 | element.ForceUpdate = ForceUpdate
82 |
83 | self:RegisterEvent('RAID_TARGET_UPDATE', Path, true)
84 |
85 | if(element:IsObjectType('Texture') and not element:GetTexture()) then
86 | element:SetTexture([[Interface\TargetingFrame\UI-RaidTargetingIcons]])
87 | end
88 |
89 | return true
90 | end
91 | end
92 |
93 | local function Disable(self)
94 | local element = self.RaidTargetIndicator
95 | if(element) then
96 | element:Hide()
97 |
98 | self:UnregisterEvent('RAID_TARGET_UPDATE', Path)
99 | end
100 | end
101 |
102 | oUF:AddElement('RaidTargetIndicator', Path, Enable, Disable)
103 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/oUF/Elements/resurrectindicator.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | # Element: Resurrect Indicator
3 |
4 | Handles the visibility and updating of an indicator based on the unit's incoming resurrect status.
5 |
6 | ## Widget
7 |
8 | ResurrectIndicator - A `Texture` used to display if the unit has an incoming resurrect.
9 |
10 | ## Notes
11 |
12 | A default texture will be applied if the widget is a Texture and doesn't have a texture or a color set.
13 |
14 | ## Examples
15 |
16 | -- Position and size
17 | local ResurrectIndicator = self:CreateTexture(nil, 'OVERLAY')
18 | ResurrectIndicator:SetSize(16, 16)
19 | ResurrectIndicator:SetPoint('TOPRIGHT', self)
20 |
21 | -- Register it with oUF
22 | self.ResurrectIndicator = ResurrectIndicator
23 | --]]
24 |
25 | local _, ns = ...
26 | local oUF = ns.oUF
27 |
28 | local function Update(self, event, unit)
29 | if(self.unit ~= unit) then return end
30 |
31 | local element = self.ResurrectIndicator
32 |
33 | --[[ Callback: ResurrectIndicator:PreUpdate()
34 | Called before the element has been updated.
35 |
36 | * self - the ResurrectIndicator element
37 | --]]
38 | if(element.PreUpdate) then
39 | element:PreUpdate()
40 | end
41 |
42 | local incomingResurrect = UnitHasIncomingResurrection(unit)
43 | if(incomingResurrect) then
44 | element:Show()
45 | else
46 | element:Hide()
47 | end
48 |
49 | --[[ Callback: ResurrectIndicator:PostUpdate(incomingResurrect)
50 | Called after the element has been updated.
51 |
52 | * self - the ResurrectIndicator element
53 | * incomingResurrect - indicates if the unit has an incoming resurrection (boolean)
54 | --]]
55 | if(element.PostUpdate) then
56 | return element:PostUpdate(incomingResurrect)
57 | end
58 | end
59 |
60 | local function Path(self, ...)
61 | --[[ Override: ResurrectIndicator.Override(self, event, ...)
62 | Used to completely override the internal update function.
63 |
64 | * self - the parent object
65 | * event - the event triggering the update (string)
66 | * ... - the arguments accompanying the event
67 | --]]
68 | return (self.ResurrectIndicator.Override or Update) (self, ...)
69 | end
70 |
71 | local function ForceUpdate(element)
72 | return Path(element.__owner, 'ForceUpdate', element.__owner.unit)
73 | end
74 |
75 | local function Enable(self)
76 | local element = self.ResurrectIndicator
77 | if(element) then
78 | element.__owner = self
79 | element.ForceUpdate = ForceUpdate
80 |
81 | self:RegisterEvent('INCOMING_RESURRECT_CHANGED', Path)
82 |
83 | if(element:IsObjectType('Texture') and not element:GetTexture()) then
84 | element:SetTexture([[Interface\RaidFrame\Raid-Icon-Rez]])
85 | end
86 |
87 | return true
88 | end
89 | end
90 |
91 | local function Disable(self)
92 | local element = self.ResurrectIndicator
93 | if(element) then
94 | element:Hide()
95 |
96 | self:UnregisterEvent('INCOMING_RESURRECT_CHANGED', Path)
97 | end
98 | end
99 |
100 | oUF:AddElement('ResurrectIndicator', Path, Enable, Disable)
101 |
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Config/RaidFrameAuras/ClassSpells.lua:
--------------------------------------------------------------------------------
1 | local _, ns = ...
2 | local B, C, L, DB = unpack(ns)
3 | local module = B:GetModule("AurasTable")
4 |
5 | -- 角标的相关法术 [spellID] = {anchor, {r, g, b}, ALL}
6 | C.CornerBuffs = {
7 | ["PRIEST"] = {
8 | [17] = {"TOPLEFT", {.7, .7, .7}}, -- 真言术盾
9 | [139] = {"TOPRIGHT", {.4, .7, .2}}, -- 恢复
10 | [6346] = {"BOTTOMRIGHT", {1, .8, 0}}, -- 防恐结界
11 | [6788] = {"TOP", {.8, .1, .1}, true}, -- 虚弱灵魂
12 | [33206] = {"LEFT", {.47, .35, .74}, true}, -- 痛苦压制
13 | [41635] = {"RIGHT", {1, .7, .4}}, -- 愈合导言
14 | },
15 | ["DRUID"] = {
16 | [467] = {"LEFT", {.8, 1, .3}}, -- 荆棘术
17 | [774] = {"TOPRIGHT", {.8, .4, .8}}, -- 回春
18 | [8936] = {"RIGHT", {.2, .8, .2}}, -- 愈合
19 | [33763] = {"TOPLEFT", {.2, .8, .6}}, -- 生命绽放
20 | [29166] = {"TOP", {0, .4, 1}, true}, -- 激活
21 | },
22 | ["PALADIN"] = {
23 | [1022] = {"TOPRIGHT", {.2, .2, 1}, true}, -- 保护
24 | [1044] = {"TOPRIGHT", {.89, .45, 0}, true}, -- 自由
25 | [6940] = {"TOPRIGHT", {.89, .1, .1}, true}, -- 牺牲
26 | [19977] = {"TOPLEFT", {1, .8, 0}}, -- 光明祝福
27 | [25890] = {"TOPLEFT", {1, .8, 0}}, -- 强效光明祝福
28 | [19742] = {"TOPLEFT", {0, .8, 1}}, -- 智慧祝福
29 | [25894] = {"TOPLEFT", {0, .8, 1}}, -- 强效智慧祝福
30 | [19740] = {"TOPLEFT", {.5, 1, .5}}, -- 力量祝福
31 | [25782] = {"TOPLEFT", {.5, 1, .5}}, -- 强效力量祝福
32 | [25771] = {"TOP", {.86, .11, .11}, true}, -- 自律
33 | },
34 | ["WARLOCK"] = {
35 | [2970] = {"TOPRIGHT", {0, .8, .5}}, -- 侦测隐形
36 | [6512] = {"TOPRIGHT", {0, .8, .5}}, -- 侦测次级隐形
37 | [11743] = {"TOPRIGHT", {0, .8, .5}}, -- 侦测强效隐形
38 | [20707] = {"BOTTOMRIGHT", {.8, .4, .8}, true}, -- 灵魂石
39 | },
40 | ["MAGE"] = {
41 | [130] = {"TOP", {1, .6, .3}}, -- 缓落术
42 | [604] = {"RIGHT", {0, .8, .5}}, -- 魔法抑制
43 | [1008] = {"TOPRIGHT", {1, .8, 0}}, -- 魔法增效
44 | [1459] = {"TOPLEFT", {0, .3, 1}}, -- 奥术智慧
45 | [23028] = {"TOPLEFT", {0, .6, 1}}, -- 奥术光辉
46 | },
47 | ["WARRIOR"] = {
48 | [6673] = {"TOPRIGHT", {1, .5, .2}}, -- 战斗怒吼
49 | },
50 | ["SHAMAN"] = {
51 | [974] = {"RIGHT", {1, .8, 0}}, -- 大地之盾
52 | [16237] = {"TOPRIGHT", {0, .6, 1}}, -- 先祖坚韧
53 | [29203] = {"TOPLEFT", {0, 1, .4}}, -- 治疗之道
54 | },
55 | ["HUNTER"] = {
56 | [13159] = {"TOPRIGHT", {.9, .9, .9}}, -- 豹群
57 | [20043] = {"TOPRIGHT", {.0, .9, .3}}, -- 野性守护
58 | [34477] = {"BOTTOMRIGHT", {.9, .1, .1}}, -- 误导
59 | },
60 | ["ROGUE"] = {
61 | [31224] = {"TOPRIGHT", {.9, .3, .9}, true}, -- 斗篷
62 | [26669] = {"RIGHT", {1, .8, 0}, true}, -- 闪避
63 | },
64 | }
65 |
66 | -- 团队框体职业相关Buffs
67 | local list = {
68 | ["ALL"] = { -- 全职业
69 | [642] = true, -- 圣盾术
70 | [871] = true, -- 盾墙
71 | [1022] = true, -- 保护祝福
72 | [27827] = true, -- 救赎之魂
73 | },
74 | }
75 | module:AddClassSpells(list)
76 |
77 | -- 团队框体减益指示器忽略列表
78 | C.DebuffBlackList = {
79 | [23445] = true, -- 邪恶双子
80 | [28274] = true, -- 血蓟消散
81 | [36893] = true, -- 传送器故障
82 | [36895] = true, -- 传送器故障
83 | [36897] = true, -- 传送器故障
84 | [36899] = true, -- 传送器故障
85 | [36900] = true, -- 灵魂分裂:坏蛋
86 | [36901] = true, -- 灵魂分裂:好人
87 | [36940] = true, -- 传送器故障
88 | }
--------------------------------------------------------------------------------
/Interface/AddOns/NDui/Libs/oUF/Elements/raidroleindicator.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | # Element: Raid Role Indicator
3 |
4 | Handles the visibility and updating of an indicator based on the unit's raid assignment (main tank or main assist).
5 |
6 | ## Widget
7 |
8 | RaidRoleIndicator - A `Texture` representing the unit's raid assignment.
9 |
10 | ## Notes
11 |
12 | This element updates by changing the texture.
13 |
14 | ## Examples
15 |
16 | -- Position and size
17 | local RaidRoleIndicator = self:CreateTexture(nil, 'OVERLAY')
18 | RaidRoleIndicator:SetSize(16, 16)
19 | RaidRoleIndicator:SetPoint('TOPLEFT')
20 |
21 | -- Register it with oUF
22 | self.RaidRoleIndicator = RaidRoleIndicator
23 | --]]
24 |
25 | local _, ns = ...
26 | local oUF = ns.oUF
27 |
28 | local MAINTANK_ICON = [[Interface\GROUPFRAME\UI-GROUP-MAINTANKICON]]
29 | local MAINASSIST_ICON = [[Interface\GROUPFRAME\UI-GROUP-MAINASSISTICON]]
30 |
31 | local function Update(self, event)
32 | local element = self.RaidRoleIndicator
33 | local unit = self.unit
34 |
35 | --[[ Callback: RaidRoleIndicator:PreUpdate()
36 | Called before the element has been updated.
37 |
38 | * self - the RaidRoleIndicator element
39 | --]]
40 | if(element.PreUpdate) then
41 | element:PreUpdate()
42 | end
43 |
44 | local role, isShown
45 | if(UnitInRaid(unit)) then
46 | if(GetPartyAssignment('MAINTANK', unit)) then
47 | isShown = true
48 | element:SetTexture(MAINTANK_ICON)
49 | role = 'MAINTANK'
50 | elseif(GetPartyAssignment('MAINASSIST', unit)) then
51 | isShown = true
52 | element:SetTexture(MAINASSIST_ICON)
53 | role = 'MAINASSIST'
54 | end
55 | end
56 |
57 | element:SetShown(isShown)
58 |
59 | --[[ Callback: RaidRoleIndicator:PostUpdate(role)
60 | Called after the element has been updated.
61 |
62 | * self - the RaidRoleIndicator element
63 | * role - the unit's raid assignment (string?)['MAINTANK', 'MAINASSIST']
64 | --]]
65 | if(element.PostUpdate) then
66 | return element:PostUpdate(role)
67 | end
68 | end
69 |
70 | local function Path(self, ...)
71 | --[[ Override: RaidRoleIndicator.Override(self, event, ...)
72 | Used to completely override the internal update function.
73 |
74 | * self - the parent object
75 | * event - the event triggering the update (string)
76 | * ... - the arguments accompanying the event
77 | --]]
78 | return (self.RaidRoleIndicator.Override or Update)(self, ...)
79 | end
80 |
81 | local function ForceUpdate(element)
82 | return Path(element.__owner, 'ForceUpdate')
83 | end
84 |
85 | local function Enable(self)
86 | local element = self.RaidRoleIndicator
87 | if(element) then
88 | element.__owner = self
89 | element.ForceUpdate = ForceUpdate
90 |
91 | self:RegisterEvent('GROUP_ROSTER_UPDATE', Path, true)
92 |
93 | return true
94 | end
95 | end
96 |
97 | local function Disable(self)
98 | local element = self.RaidRoleIndicator
99 | if(element) then
100 | element:Hide()
101 |
102 | self:UnregisterEvent('GROUP_ROSTER_UPDATE', Path)
103 | end
104 | end
105 |
106 | oUF:AddElement('RaidRoleIndicator', Path, Enable, Disable)
107 |
--------------------------------------------------------------------------------