-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcore.lua
More file actions
129 lines (120 loc) · 4.79 KB
/
core.lua
File metadata and controls
129 lines (120 loc) · 4.79 KB
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
local addonName,addon = ...
local L = addon.L
local f=CreateFrame("Frame")
f.OnEvent = function(_,event,...)
return addon[event] and addon[event](addon,...)
end
f:SetScript("OnEvent",f.OnEvent)
f:RegisterEvent("ADDON_LOADED")
local function restoreExpand()
local showStatus = not not CharacterStatsPaneImprovedDB.showPane
if PaperDollFrame:IsVisible() or PetPaperDollFrame:IsVisible() then
if CharacterStatsPane:IsShown() ~= showStatus then
CharacterFrame[showStatus and "Expand" or "Collapse"](CharacterFrame)
--CharacterFrameExpandButton:Click()
end
end
end
local function subframeShow(_,subframeName)
if subframeName == "PaperDollFrame" or subframeName == "PetPaperDollFrame" then
restoreExpand()
end
end
function InitVars()
CharacterStatsPaneImprovedDB = CharacterStatsPaneImprovedDB or {{},{}} -- primary, secondary specs
if addon.IsCata then
CharacterStatsPaneImprovedDB[1].collapsed = CharacterStatsPaneImprovedDB[1].collapsed or {}
CharacterStatsPaneImprovedDB[1].order = CharacterStatsPaneImprovedDB[1].order or {}
CharacterStatsPaneImprovedDB[2].collapsed = CharacterStatsPaneImprovedDB[2].collapsed or {}
CharacterStatsPaneImprovedDB[2].order = CharacterStatsPaneImprovedDB[2].order or {}
if CharacterStatsPaneImprovedDBG.skipMeleeRange == nil then
CharacterStatsPaneImprovedDBG.skipMeleeRange = true
end
end
CharacterStatsPaneImprovedDBG = CharacterStatsPaneImprovedDBG or {showLuck = true}
if addon.IsMoP51 then
if CharacterStatsPaneImprovedDB.dualShaTouched == nil then
CharacterStatsPaneImprovedDB.dualShaTouched = false
end
end
end
function addon:SetupPaneHooks()
if addon.IsCata then
EventRegistry:RegisterCallback("CharacterFrame.Show", restoreExpand, addon)
--EventRegistry:RegisterCallback("CharacterFrame.Hide", suspendSaves, addon)
hooksecurefunc(CharacterFrame, "ShowSubFrame", subframeShow)
CharacterFrameExpandButton:HookScript("PreClick",function(self,button,down)
if CharacterFrameExpandButton:IsMouseOver() then
CharacterStatsPaneImprovedDB.showPane = not CharacterFrame.Expanded
end
end)
hooksecurefunc("PaperDoll_InitStatCategories",addon.InitStatCategories)
hooksecurefunc("PaperDoll_MoveCategoryUp",addon.MoveCategoryUp)
hooksecurefunc("PaperDoll_MoveCategoryDown",addon.MoveCategoryDown)
--hooksecurefunc("PaperDollStatCategory_OnDragStart",addon.StatCategory_OnDragStart)
--hooksecurefunc("PaperDollStatCategory_OnDragStop",addon.StatCategory_OnDragStop)
end
hooksecurefunc("PaperDollFrame_UpdateStatCategory",addon.CleanStatCategory)
end
local PAPERDOLL_STATINFO_CSPM = addon.NEW_STATINFO
function addon:SetupInjections()
PAPERDOLL_STATINFO = setmetatable(PAPERDOLL_STATINFO,{__index = PAPERDOLL_STATINFO_CSPM})
end
function addon:ADDON_LOADED(...)
if ... == addonName then
InitVars()
self:SetupPaneHooks()
self:SetupInjections()
if GetActiveTalentGroup then
addon.spec = GetActiveTalentGroup() or 1
elseif C_SpecializationInfo and C_SpecializationInfo.GetActiveSpecGroup then
addon.spec = C_SpecializationInfo.GetActiveSpecGroup() or 1
end
if addon.IsCata then
if C_EventUtils.IsEventValid("ACTIVE_TALENT_GROUP_CHANGED") then
f:RegisterEvent("ACTIVE_TALENT_GROUP_CHANGED")
end
if C_EventUtils.IsEventValid("PLAYER_SPECIALIZATION_CHANGED") then
f:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED")
end
self:AddStat("DEFENSE","CTC","BLOCK")
end
if addon.IsMoP then
self:AddStat("DEFENSE","AVRT","PARRY")
self:AddStat("MELEE","CRITCAP","CRITCHANCE")
end
self:AddStat("GENERAL","GEARCHECK")
self:AddStat("ATTRIBUTES","LUCK")
end
end
--[[ characterFrameCollapsed ]]
function addon:ACTIVE_TALENT_GROUP_CHANGED(...)
local changedTo, changedFrom = ...
local prevSpec = addon.spec or 1
addon.spec = changedTo or 1
if addon.spec ~= prevSpec then
local cvarOrder,cvarCollapse
if addon.spec == 1 then
cvarOrder,cvarCollapse = "statCategoryOrder","statCategoriesCollapsed"
else
cvarOrder,cvarCollapse = "statCategoryOrder_2","statCategoriesCollapsed_2"
end
self.InitStatCategories(PAPERDOLL_STATCATEGORY_DEFAULTORDER,cvarOrder,cvarCollapse,"player")
end
end
function addon:PLAYER_SPECIALIZATION_CHANGED(...)
if ... == "player" then
local prevSpec = addon.spec or 1
addon.spec = C_SpecializationInfo.GetActiveSpecGroup() or 1
if addon.spec ~= prevSpec then
local cvarOrder,cvarCollapse
if addon.spec == 1 then
cvarOrder,cvarCollapse = "statCategoryOrder","statCategoriesCollapsed"
else
cvarOrder,cvarCollapse = "statCategoryOrder_2","statCategoriesCollapsed_2"
end
self.InitStatCategories(PAPERDOLL_STATCATEGORY_DEFAULTORDER,cvarOrder,cvarCollapse,"player")
end
end
end
_G[addonName]=addon