8ad40722a0
Update nameplate coloring. Fix world map blips
77 lines
1.8 KiB
Lua
77 lines
1.8 KiB
Lua
local E, L, V, P, G = unpack(ElvUI)
|
|
local WF = E:NewModule("Enhanced_WatchFrame", "AceEvent-3.0")
|
|
|
|
local IsInInstance = IsInInstance
|
|
local IsResting = IsResting
|
|
local UnitAffectingCombat = UnitAffectingCombat
|
|
|
|
local watchFrame
|
|
|
|
local statedriver = {
|
|
["NONE"] = function()
|
|
WatchFrame.userCollapsed = false
|
|
WatchFrame_Expand(watchFrame)
|
|
WatchFrame:Show()
|
|
end,
|
|
["COLLAPSED"] = function()
|
|
WatchFrame.userCollapsed = true
|
|
WatchFrame_Collapse(watchFrame)
|
|
WatchFrame:Show()
|
|
end,
|
|
["HIDDEN"] = function()
|
|
WatchFrame:Hide()
|
|
end
|
|
}
|
|
|
|
function WF:ChangeState()
|
|
if UnitAffectingCombat("player") then
|
|
self:RegisterEvent("PLAYER_REGEN_ENABLED", "ChangeState")
|
|
self.inCombat = true
|
|
return
|
|
end
|
|
|
|
if IsResting() then
|
|
statedriver[self.db.city](watchFrame)
|
|
else
|
|
local _, instanceType = IsInInstance()
|
|
if instanceType == "pvp" then
|
|
statedriver[self.db.pvp](watchFrame)
|
|
elseif instanceType == "arena" then
|
|
statedriver[self.db.arena](watchFrame)
|
|
elseif instanceType == "party" then
|
|
statedriver[self.db.party](watchFrame)
|
|
elseif instanceType == "raid" then
|
|
statedriver[self.db.raid](watchFrame)
|
|
else
|
|
statedriver["NONE"](watchFrame)
|
|
end
|
|
end
|
|
|
|
if self.inCombat then
|
|
self:UnregisterEvent("PLAYER_REGEN_ENABLED")
|
|
self.inCombat = nil
|
|
end
|
|
end
|
|
|
|
function WF:UpdateSettings()
|
|
if self.db.enable then
|
|
self:RegisterEvent("PLAYER_ENTERING_WORLD", "ChangeState")
|
|
self:RegisterEvent("PLAYER_UPDATE_RESTING", "ChangeState")
|
|
else
|
|
self:UnregisterEvent("PLAYER_ENTERING_WORLD")
|
|
self:UnregisterEvent("PLAYER_UPDATE_RESTING")
|
|
end
|
|
end
|
|
|
|
function WF:Initialize()
|
|
watchFrame = _G["WatchFrame"]
|
|
self.db = E.db.enhanced.watchframe
|
|
|
|
self:UpdateSettings()
|
|
end
|
|
|
|
local function InitializeCallback()
|
|
WF:Initialize()
|
|
end
|
|
|
|
E:RegisterModule(WF:GetName(), InitializeCallback) |