- Fixed some issues with spec detection and LibGroupInSpecT-1.1 has need enabled back again.
- Fixed an issue with micro displays not loading settings after a logon. - Another wave of workarounds to prevent the client image cache bug.
This commit is contained in:
+144
-7
@@ -592,7 +592,8 @@ function DetailsFrameworkDropDownOnMouseDown (button)
|
||||
local name = button:GetName() .. "Row" .. i
|
||||
local parent = scrollChild
|
||||
|
||||
_this_row = CreateFrame ("Button", name, parent, "DetailsFrameworkDropDownOptionTemplate")
|
||||
--_this_row = CreateFrame ("Button", name, parent, "DetailsFrameworkDropDownOptionTemplate")
|
||||
_this_row = DF:CreateDropdownButton (parent, name)
|
||||
local anchor_i = i-1
|
||||
_this_row:SetPoint ("topleft", parent, "topleft", 5, (-anchor_i*20)-5)
|
||||
_this_row:SetPoint ("topright", parent, "topright", -5, (-anchor_i*20)-5)
|
||||
@@ -600,6 +601,9 @@ function DetailsFrameworkDropDownOnMouseDown (button)
|
||||
object.menus [i] = _this_row
|
||||
end
|
||||
|
||||
_this_row:SetFrameStrata (_this_row:GetParent():GetFrameStrata())
|
||||
_this_row:SetFrameLevel (_this_row:GetParent():GetFrameLevel()+10)
|
||||
|
||||
_this_row.icon:SetTexture (_table.icon)
|
||||
if (_table.icon) then
|
||||
|
||||
@@ -697,8 +701,8 @@ function DetailsFrameworkDropDownOnMouseDown (button)
|
||||
scrollFrame:SetWidth (frame_witdh+20)
|
||||
scrollChild:SetWidth (frame_witdh+20)
|
||||
--height
|
||||
scrollBorder:SetHeight (size+20)
|
||||
scrollFrame:SetHeight (size)
|
||||
scrollBorder:SetHeight (size+2)
|
||||
scrollFrame:SetHeight (size+2)
|
||||
scrollChild:SetHeight ((showing*20)+20)
|
||||
--mouse over texture
|
||||
mouseOverTexture:SetWidth (frame_witdh-7)
|
||||
@@ -718,8 +722,8 @@ function DetailsFrameworkDropDownOnMouseDown (button)
|
||||
scrollFrame:SetWidth (frame_witdh)
|
||||
scrollChild:SetWidth (frame_witdh)
|
||||
--height
|
||||
scrollBorder:SetHeight ((showing*20) + 25)
|
||||
scrollFrame:SetHeight ((showing*20) + 25)
|
||||
scrollBorder:SetHeight ((showing*20) + 10)
|
||||
scrollFrame:SetHeight ((showing*20) + 10)
|
||||
--mouse over texture
|
||||
mouseOverTexture:SetWidth (frame_witdh-10)
|
||||
--selected
|
||||
@@ -933,7 +937,9 @@ function DF:NewDropDown (parent, container, name, member, w, h, func, default, t
|
||||
--> misc
|
||||
DropDownObject.container = container
|
||||
|
||||
DropDownObject.dropdown = CreateFrame ("Button", name, parent, "DetailsFrameworkDropDownTemplate")
|
||||
--DropDownObject.dropdown = CreateFrame ("Button", name, parent, "DetailsFrameworkDropDownTemplate")
|
||||
DropDownObject.dropdown = DF:CreateNewDropdownFrame (parent, name)
|
||||
|
||||
DropDownObject.widget = DropDownObject.dropdown
|
||||
|
||||
DropDownObject.__it = {nil, nil}
|
||||
@@ -1022,4 +1028,135 @@ function DF:NewDropDown (parent, container, name, member, w, h, func, default, t
|
||||
|
||||
return DropDownObject
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
local default_backdrop = {bgFile = [[Interface\DialogFrame\UI-DialogBox-Background]], edgeFile = [[Interface\DialogFrame\UI-DialogBox-Border]],
|
||||
edgeSize = 1, tile = true, tileSize = 16, insets = {left = 1, right = 1, top = 0, bottom = 1}}
|
||||
local border_backdrop = {edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, insets = {left = 0, right = 0, top = 0, bottom = 0}}
|
||||
local child_backdrop = {bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 256, insets = {left = 0, right = 0, top = 0, bottom = 0}}
|
||||
|
||||
function DF:CreateNewDropdownFrame (parent, name)
|
||||
local f = CreateFrame ("button", name, parent)
|
||||
f:SetBackdrop (default_backdrop)
|
||||
f:SetSize (150, 20)
|
||||
|
||||
local statusbar = f:CreateTexture ("$parent_StatusBarTexture", "BACKGROUND")
|
||||
statusbar:SetPoint ("topleft", f, "topleft", 3, -3)
|
||||
statusbar:SetPoint ("bottomright", f, "bottomright", -3, 3)
|
||||
f.statusbar = statusbar
|
||||
|
||||
local icon = f:CreateTexture ("$parent_IconTexture", "ARTWORK")
|
||||
icon:SetPoint ("left", f, "left", 2, 0)
|
||||
icon:SetSize (20, 20)
|
||||
icon:SetTexture ([[Interface\COMMON\UI-ModelControlPanel]])
|
||||
icon:SetTexCoord (0.625, 0.78125, 0.328125, 0.390625)
|
||||
icon:SetVertexColor (1, 1, 1, 0.4)
|
||||
f.icon = icon
|
||||
|
||||
local text = f:CreateFontString ("$parent_Text", "ARTWORK", "GameFontHighlightSmall")
|
||||
text:SetPoint ("left", icon, "right", 5, 0)
|
||||
text:SetJustifyH ("left")
|
||||
text:SetText ("no option selected")
|
||||
text:SetTextColor (1, 1, 1, 0.4)
|
||||
DF:SetFontSize (text, 10)
|
||||
f.text = text
|
||||
|
||||
local arrow = f:CreateTexture ("$parent_ArrowTexture2", "OVERLAY")
|
||||
arrow:SetPoint ("right", f, "right", 5, -1)
|
||||
arrow:SetBlendMode ("ADD")
|
||||
arrow:SetTexture ([[Interface\Buttons\UI-ScrollBar-ScrollDownButton-Highlight]])
|
||||
arrow:Hide()
|
||||
arrow:SetSize (32, 28)
|
||||
f.arrowTexture2 = arrow
|
||||
|
||||
local buttonTexture = f:CreateTexture ("$parent_ArrowTexture", "OVERLAY")
|
||||
buttonTexture:SetPoint ("right", f, "right", 5, -1)
|
||||
buttonTexture:SetTexture ([[Interface\Buttons\UI-ScrollBar-ScrollDownButton-Up]])
|
||||
buttonTexture:SetSize (32, 28)
|
||||
f.arrowTexture = buttonTexture
|
||||
|
||||
--scripts
|
||||
f:SetScript ("OnSizeChanged", DetailsFrameworkDropDownOnSizeChanged)
|
||||
f:SetScript ("OnMouseDown", DetailsFrameworkDropDownOnMouseDown)
|
||||
|
||||
--on load
|
||||
f:SetBackdropColor (1, 1, 1, .5)
|
||||
f.arrowTexture:SetDrawLayer ("OVERLAY", 1)
|
||||
f.arrowTexture2:SetDrawLayer ("OVERLAY", 2)
|
||||
|
||||
--dropdown
|
||||
local border = CreateFrame ("frame", "$Parent_Border", f)
|
||||
border:Hide()
|
||||
border:SetFrameStrata ("FULLSCREEN")
|
||||
border:SetSize (150, 150)
|
||||
border:SetPoint ("topleft", f, "bottomleft")
|
||||
border:SetBackdrop (border_backdrop)
|
||||
border:SetScript ("OnHide", DetailsFrameworkDropDownOptionsFrameOnHide)
|
||||
border:SetBackdropColor (0, 0, 0, 0.92)
|
||||
border:SetBackdropBorderColor (0, 0, 0, 1)
|
||||
f.dropdownborder = border
|
||||
|
||||
local scroll = CreateFrame ("ScrollFrame", "$Parent_ScrollFrame", f)
|
||||
scroll:Hide()
|
||||
scroll:SetFrameStrata ("FULLSCREEN")
|
||||
scroll:SetSize (150, 150)
|
||||
scroll:SetPoint ("topleft", f, "bottomleft", 0, 0)
|
||||
f.dropdownframe = scroll
|
||||
|
||||
local child = CreateFrame ("frame", "$Parent_ScrollChild", scroll)
|
||||
child:SetSize (150, 150)
|
||||
child:SetPoint ("topleft", scroll, "topleft", 0, 0)
|
||||
child:SetBackdrop (child_backdrop)
|
||||
child:SetBackdropColor (0, 0, 0, 1)
|
||||
|
||||
local selected = child:CreateTexture ("$parent_SelectedTexture", "BACKGROUND")
|
||||
selected:SetSize (150, 16)
|
||||
selected:Hide()
|
||||
selected:SetPoint ("left", child, "left", 2, 0)
|
||||
selected:SetTexture ([[Interface\RAIDFRAME\Raid-Bar-Hp-Fill]])
|
||||
child.selected = selected
|
||||
|
||||
local mouseover = child:CreateTexture ("$parent_MouseOverTexture", "ARTWORK")
|
||||
mouseover:SetBlendMode ("ADD")
|
||||
mouseover:Hide()
|
||||
mouseover:SetTexture ([[Interface\Buttons\UI-Listbox-Highlight]])
|
||||
mouseover:SetSize (150, 15)
|
||||
mouseover:SetPoint ("left", child, "left", 2, 0)
|
||||
child.mouseover = mouseover
|
||||
|
||||
scroll:SetScrollChild (child)
|
||||
tinsert (UISpecialFrames, f.dropdownborder:GetName())
|
||||
tinsert (UISpecialFrames, f.dropdownframe:GetName())
|
||||
|
||||
return f
|
||||
end
|
||||
|
||||
function DF:CreateDropdownButton (parent, name)
|
||||
|
||||
local f = CreateFrame ("button", name, parent)
|
||||
f:SetSize (150, 20)
|
||||
|
||||
local statusbar = f:CreateTexture ("$parent_StatusBarTexture", "ARTWORK")
|
||||
statusbar:SetPoint ("left", f, "left", 1, 0)
|
||||
statusbar:SetPoint ("right", f, "right", -10, 0)
|
||||
statusbar:SetSize (150, 20)
|
||||
f.statusbar = statusbar
|
||||
|
||||
local icon = f:CreateTexture ("$parent_IconTexture", "OVERLAY")
|
||||
icon:SetPoint ("left", f, "left", 2, 0)
|
||||
icon:SetSize (20, 20)
|
||||
icon:SetTexture ([[Interface\ICONS\Spell_ChargePositive]])
|
||||
f.icon = icon
|
||||
|
||||
local text = f:CreateFontString ("$parent_Text", "OVERLAY", "GameFontHighlightSmall")
|
||||
text:SetPoint ("left", icon, "right", 5, 0)
|
||||
text:SetJustifyH ("left")
|
||||
DF:SetFontSize (text, 10)
|
||||
f.label = text
|
||||
|
||||
f:SetScript ("OnMouseDown", DetailsFrameworkDropDownOptionClick)
|
||||
f:SetScript ("OnEnter", DetailsFrameworkDropDownOptionOnEnter)
|
||||
f:SetScript ("OnLeave", DetailsFrameworkDropDownOptionOnLeave)
|
||||
|
||||
return f
|
||||
end
|
||||
|
||||
+16
-6
@@ -79,13 +79,10 @@
|
||||
<Anchor point="TOPLEFT" relativeTo="$Parent" relativePoint="BOTTOMLEFT"/>
|
||||
</Anchors>
|
||||
|
||||
<Backdrop bgFile="Interface\FrameGeneral\UI-Background-Marble" edgeFile="Interface\Buttons\WHITE8X8" tile="true">
|
||||
<Backdrop edgeFile="Interface\Buttons\WHITE8X8">
|
||||
<EdgeSize>
|
||||
<AbsValue val="1"/>
|
||||
</EdgeSize>
|
||||
<TileSize>
|
||||
<AbsValue val="256"/>
|
||||
</TileSize>
|
||||
<BackgroundInsets>
|
||||
<AbsInset left="0" right="0" top="0" bottom="0"/>
|
||||
</BackgroundInsets>
|
||||
@@ -104,7 +101,7 @@
|
||||
</Frame>
|
||||
|
||||
<ScrollFrame name="$Parent_ScrollFrame" parentKey="dropdownframe" hidden="true" frameStrata="FULLSCREEN">
|
||||
<Size x="150" y="150"/>
|
||||
<Size x="150" y="170"/>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="$Parent" relativePoint="BOTTOMLEFT" x="0" y="-10" />
|
||||
</Anchors>
|
||||
@@ -112,12 +109,21 @@
|
||||
<ScrollChild>
|
||||
<Frame name="$Parent_ScrollChild" frameStrata="FULLSCREEN" parentKey="scrollchild">
|
||||
|
||||
<Size x="150" y="150"/>
|
||||
<Size x="150" y="170"/>
|
||||
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="$Parent" relativePoint="TOPLEFT" x="0" y="0" />
|
||||
</Anchors>
|
||||
|
||||
<Backdrop bgFile="Interface\FrameGeneral\UI-Background-Marble" tile="true">
|
||||
<TileSize>
|
||||
<AbsValue val="256"/>
|
||||
</TileSize>
|
||||
<BackgroundInsets>
|
||||
<AbsInset left="0" right="0" top="0" bottom="0"/>
|
||||
</BackgroundInsets>
|
||||
</Backdrop>
|
||||
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<!-- selected texture // we don't know where the file is it -->
|
||||
@@ -222,6 +228,10 @@
|
||||
</Layers>
|
||||
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
self:SetFrameStrata (self:GetParent():GetFrameStrata())
|
||||
self:SetFrameLevel (self:GetParent():GetFrameLevel()+10)
|
||||
</OnLoad>
|
||||
<OnMouseDown>
|
||||
DetailsFrameworkDropDownOptionClick (self);
|
||||
</OnMouseDown>
|
||||
|
||||
+39
-1
@@ -1,5 +1,5 @@
|
||||
|
||||
local dversion = 27
|
||||
local dversion = 29
|
||||
local major, minor = "DetailsFramework-1.0", dversion
|
||||
local DF, oldminor = LibStub:NewLibrary (major, minor)
|
||||
|
||||
@@ -111,6 +111,8 @@ local embed_functions = {
|
||||
"FindHighestParent",
|
||||
"OpenInterfaceProfile",
|
||||
"CreateInCombatTexture",
|
||||
"CreateAnimationHub",
|
||||
"CreateAnimation",
|
||||
}
|
||||
|
||||
DF.table = {}
|
||||
@@ -1160,3 +1162,39 @@ function DF:Mixin (object, ...)
|
||||
|
||||
return object;
|
||||
end
|
||||
|
||||
-----------------------------
|
||||
|
||||
function DF:CreateAnimationHub (parent, onPlay, onFinished)
|
||||
local newAnimation = parent:CreateAnimationGroup()
|
||||
newAnimation:SetScript ("OnPlay", onPlay)
|
||||
newAnimation:SetScript ("OnFinished", onFinished)
|
||||
newAnimation.NextAnimation = 1
|
||||
return newAnimation
|
||||
end
|
||||
|
||||
function DF:CreateAnimation (animation, type, duration, arg1, arg2, arg3, arg4, arg5, arg6, arg7)
|
||||
local anim = animation:CreateAnimation (type)
|
||||
|
||||
anim:SetOrder (animation.NextAnimation)
|
||||
anim:SetDuration (duration)
|
||||
|
||||
if (type == "Alpha") then
|
||||
anim:SetFromAlpha (arg1)
|
||||
anim:SetToAlpha (arg2)
|
||||
|
||||
elseif (type == "Scale") then
|
||||
anim:SetFromScale (arg1, arg2)
|
||||
anim:SetToScale (arg3, arg4)
|
||||
anim:SetOrigin (arg5 or "center", arg6 or 0, arg7 or 0) --point, x, y
|
||||
|
||||
elseif (type == "Rotation") then
|
||||
anim:SetDegrees (arg1) --degree
|
||||
anim:SetOrigin (arg2 or "center", arg3 or 0, arg4 or 0) --point, x, y
|
||||
end
|
||||
|
||||
animation.NextAnimation = animation.NextAnimation + 1
|
||||
return anim
|
||||
end
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -2523,7 +2523,7 @@ local draw_overlay = function (self, this_overlay, overlayData, color)
|
||||
|
||||
local pixel = self.Graphic:GetWidth() / self.TimeScale
|
||||
local index = 1
|
||||
local r, g, b = unpack (color)
|
||||
local r, g, b = unpack (color or line_default_color)
|
||||
|
||||
for i = 1, #overlayData, 2 do
|
||||
local aura_start = overlayData [i]
|
||||
|
||||
@@ -37,17 +37,6 @@
|
||||
-- }
|
||||
-- ...
|
||||
-- }
|
||||
-- .glyphs = {
|
||||
-- [<spell_id>] = {
|
||||
-- .idx -- 1 to NUM_GLYPH_SLOTS
|
||||
-- .glyph_id
|
||||
-- .glyph_type
|
||||
-- .name_localized
|
||||
-- .icon
|
||||
-- .spell_id
|
||||
-- }
|
||||
-- ...
|
||||
-- },
|
||||
-- .lku -- last known unit id
|
||||
-- .not_visible
|
||||
--
|
||||
@@ -73,7 +62,7 @@
|
||||
-- Returns an array with the set of unit ids for the current group.
|
||||
--]]
|
||||
|
||||
local MAJOR, MINOR = "LibGroupInSpecT-1.1", tonumber (("$Revision: 79 $"):match ("(%d+)") or 0)
|
||||
local MAJOR, MINOR = "LibGroupInSpecT-1.1", tonumber (("$Revision: 83 $"):match ("(%d+)") or 0)
|
||||
|
||||
if not LibStub then error(MAJOR.." requires LibStub") end
|
||||
local lib = LibStub:NewLibrary (MAJOR, MINOR)
|
||||
@@ -88,7 +77,7 @@ local REMOVE_EVENT = "GroupInSpecT_Remove"
|
||||
local INSPECT_READY_EVENT = "GroupInSpecT_InspectReady"
|
||||
|
||||
local COMMS_PREFIX = "LGIST11"
|
||||
local COMMS_FMT = "0"
|
||||
local COMMS_FMT = "1"
|
||||
local COMMS_DELIM = "\a"
|
||||
|
||||
local INSPECT_DELAY = 1.5
|
||||
@@ -161,7 +150,6 @@ end
|
||||
local CanInspect = _G.CanInspect
|
||||
local ClearInspectPlayer = _G.ClearInspectPlayer
|
||||
local GetClassInfo = _G.GetClassInfo
|
||||
local GetGlyphSocketInfo = _G.GetGlyphSocketInfo
|
||||
local GetNumSubgroupMembers = _G.GetNumSubgroupMembers
|
||||
local GetNumSpecializationsForClassID = _G.GetNumSpecializationsForClassID
|
||||
local GetPlayerInfoByGUID = _G.GetPlayerInfoByGUID
|
||||
@@ -198,7 +186,7 @@ local global_spec_id_roles_detailed = {
|
||||
-- Hunter
|
||||
[253] = "ranged", -- Beast Mastery
|
||||
[254] = "ranged", -- Marksmanship
|
||||
[255] = "ranged", -- Survival
|
||||
[255] = "melee", -- Survival
|
||||
-- Mage
|
||||
[62] = "ranged", -- Arcane
|
||||
[63] = "ranged", -- Fire
|
||||
@@ -241,25 +229,11 @@ local class_fixed_roles = {
|
||||
}
|
||||
|
||||
local class_fixed_roles_detailed = {
|
||||
HUNTER = "ranged",
|
||||
MAGE = "ranged",
|
||||
ROGUE = "melee",
|
||||
WARLOCK = "ranged",
|
||||
}
|
||||
|
||||
local warrior_protection_spec_id = 73
|
||||
local warrior_anger_management_talent = 21204
|
||||
local warrior_ravager_talent = 21205
|
||||
local warrior_gladiators_resolve_talent = 21206
|
||||
local warrior_gladiator_stance = GetSpellInfo(156291)
|
||||
|
||||
local function HasGladiatorStance (unit, info)
|
||||
-- Check for "not the other two level-100 talents" in case talent info isn't ready.
|
||||
local talents = info.talents
|
||||
return talents and (talents[warrior_gladiators_resolve_talent] or (not talents[warrior_anger_management_talent] and not talents[warrior_ravager_talent])) and UnitBuff(unit, warrior_gladiator_stance)
|
||||
end
|
||||
|
||||
|
||||
-- Inspects only work after being fully logged in, so track that
|
||||
function lib:PLAYER_LOGIN ()
|
||||
self.state.logged_in = true
|
||||
@@ -275,8 +249,6 @@ function lib:PLAYER_LOGIN ()
|
||||
frame:RegisterEvent ("UNIT_SPELLCAST_SUCCEEDED")
|
||||
frame:RegisterEvent ("UNIT_NAME_UPDATE")
|
||||
frame:RegisterEvent ("UNIT_AURA")
|
||||
frame:RegisterEvent ("GLYPH_ADDED")
|
||||
frame:RegisterEvent ("GLYPH_REMOVED")
|
||||
frame:RegisterEvent ("CHAT_MSG_ADDON")
|
||||
RegisterAddonMessagePrefix (COMMS_PREFIX)
|
||||
|
||||
@@ -321,7 +293,6 @@ end
|
||||
|
||||
-- Caches to deal with API shortcomings as well as performance
|
||||
lib.static_cache.global_specs = {} -- [gspec] -> { .idx, .name_localized, .description, .icon, .background, .role }
|
||||
lib.static_cache.glyph_info = {} -- [spell_id] -> { .idx, .name_localized, .icon, .glyph_type, .glyph_id }
|
||||
lib.static_cache.class_to_class_id = {} -- [CLASS] -> class_id
|
||||
|
||||
-- The talents cache can no longer be pre-fetched on login, but is now constructed class-by-class as we inspect people.
|
||||
@@ -540,15 +511,6 @@ function lib:BuildInfo (unit)
|
||||
info.spec_role_detailed = global_spec_id_roles_detailed[gspec_id]
|
||||
end
|
||||
|
||||
-- Fix role if unit is a protection warrior in Gladiator Stance.
|
||||
-- Check for "not the other two level-100 talents" in case talent info isn't ready.
|
||||
if info.global_spec_id == warrior_protection_spec_id then
|
||||
if HasGladiatorStance (unit, info) then
|
||||
info.spec_role = "DAMAGER"
|
||||
info.spec_role_detailed = "melee"
|
||||
end
|
||||
end
|
||||
|
||||
if not info.spec_role then info.spec_role = class and class_fixed_roles[class] end
|
||||
if not info.spec_role_detailed then info.spec_role_detailed = class and class_fixed_roles_detailed[class] end
|
||||
|
||||
@@ -568,24 +530,7 @@ function lib:BuildInfo (unit)
|
||||
end
|
||||
end
|
||||
|
||||
info.glyphs = wipe (info.glyphs or {})
|
||||
local glyph_info = self.static_cache.glyph_info
|
||||
for idx = 1, (NUM_GLYPH_SLOTS or 0) do
|
||||
local enabled, glyph_type, _, spell_id, icon, glyph_id = GetGlyphSocketInfo (idx, nil, is_inspect, unit)
|
||||
if spell_id and not glyph_info[spell_id] then -- not already available in the cache
|
||||
glyph_info[spell_id] = {}
|
||||
local glyph = glyph_info[spell_id]
|
||||
glyph.spell_id = spell_id
|
||||
glyph.glyph_type = glyph_type
|
||||
glyph.idx = idx
|
||||
glyph.icon = icon
|
||||
glyph.glyph_id = glyph_id
|
||||
glyph.name_localized = spell_id and (GetSpellInfo (spell_id)) or nil
|
||||
end
|
||||
if enabled and spell_id then
|
||||
info.glyphs[spell_id] = glyph_info[spell_id]
|
||||
end
|
||||
end
|
||||
info.glyphs = wipe (info.glyphs or {}) -- kept for addons that still refer to this
|
||||
|
||||
if is_inspect and not UnitIsVisible (unit) and UnitIsConnected (unit) then info.not_visible = true end
|
||||
|
||||
@@ -676,8 +621,8 @@ function lib:SendLatestSpecData ()
|
||||
local info = self.cache[guid]
|
||||
if not info then return end
|
||||
|
||||
-- fmt, guid, global_spec_id, talent1 -> MAX_TALENT_TIERS, glyph1 -> NUM_GLYPH_SLOTS, glyph1 detail, glyph 2 detail,
|
||||
-- sequentially, allow no gaps for missing talents/glyphs we decode by index on the receiving end.
|
||||
-- fmt, guid, global_spec_id, talent1 -> MAX_TALENT_TIERS
|
||||
-- sequentially, allow no gaps for missing talents we decode by index on the receiving end.
|
||||
local datastr = COMMS_FMT..COMMS_DELIM..guid..COMMS_DELIM..(info.global_spec_id or 0)
|
||||
local talentCount = 1
|
||||
for k in pairs(info.talents) do
|
||||
@@ -688,19 +633,6 @@ function lib:SendLatestSpecData ()
|
||||
datastr = datastr..COMMS_DELIM..0
|
||||
end
|
||||
|
||||
local glyphCount = 1
|
||||
local glyphstr = ""
|
||||
for k,glyph in pairs(info.glyphs) do -- specifically ordered because we pull them out by index on the other end
|
||||
datastr = datastr..COMMS_DELIM..k
|
||||
glyphstr = glyphstr..COMMS_DELIM..(glyph.idx or "")..COMMS_DELIM..(glyph.glyph_id or "")..COMMS_DELIM..(glyph.glyph_type or "")
|
||||
glyphCount = glyphCount + 1
|
||||
end
|
||||
for i=glyphCount,(NUM_GLYPH_SLOTS or 0) do
|
||||
datastr = datastr..COMMS_DELIM..0
|
||||
glyphstr = glyphstr..COMMS_DELIM..COMMS_DELIM..COMMS_DELIM -- unused entry, but keep format sound
|
||||
end
|
||||
datastr = datastr..glyphstr
|
||||
|
||||
--[===[@debug@
|
||||
debug ("Sending LGIST update to "..scope) --@end-debug@]===]
|
||||
SendAddonMessage(COMMS_PREFIX, datastr, scope)
|
||||
@@ -722,8 +654,7 @@ msg_idx.fmt = 1
|
||||
msg_idx.guid = msg_idx.fmt + 1
|
||||
msg_idx.global_spec_id = msg_idx.guid + 1
|
||||
msg_idx.talents = msg_idx.global_spec_id + 1
|
||||
msg_idx.glyphs = msg_idx.talents + MAX_TALENT_TIERS
|
||||
msg_idx.glyph_detail = msg_idx.glyphs + (NUM_GLYPH_SLOTS or 0)
|
||||
msg_idx.end_talents = msg_idx.talents + MAX_TALENT_TIERS - 1
|
||||
|
||||
function lib:CHAT_MSG_ADDON (prefix, datastr, scope, sender)
|
||||
if prefix ~= COMMS_PREFIX or scope ~= self.commScope then return end
|
||||
@@ -768,20 +699,11 @@ function lib:CHAT_MSG_ADDON (prefix, datastr, scope, sender)
|
||||
info.spec_role = gspecs[gspec_id].role
|
||||
info.spec_role_detailed = global_spec_id_roles_detailed[gspec_id]
|
||||
|
||||
-- Fix role if unit is a protection warrior in Gladiator Stance.
|
||||
-- Check for "not the other two level-100 talents" in case talent info isn't ready.
|
||||
if info.global_spec_id == warrior_protection_spec_id then
|
||||
if HasGladiatorStance (unit, info) then
|
||||
info.spec_role = "DAMAGER"
|
||||
info.spec_role_detailed = "melee"
|
||||
end
|
||||
end
|
||||
|
||||
local need_inspect = nil
|
||||
info.talents = wipe (info.talents or {})
|
||||
local talents = self.static_cache.talents[info.class_id]
|
||||
if talents then -- The group entry is created before we have inspect-data, so may not have cached talents yet
|
||||
for i = msg_idx.talents, msg_idx.glyphs - 1 do
|
||||
for i = msg_idx.talents, msg_idx.end_talents do
|
||||
local talent_id = tonumber (data[i])
|
||||
if talent_id and talent_id > 0 then
|
||||
if talents[talent_id] then
|
||||
@@ -797,29 +719,7 @@ function lib:CHAT_MSG_ADDON (prefix, datastr, scope, sender)
|
||||
need_inspect = 1
|
||||
end
|
||||
|
||||
local glyph_info = self.static_cache.glyph_info
|
||||
info.glyphs = wipe (info.glyphs or {})
|
||||
for i = msg_idx.glyphs, msg_idx.glyph_detail - 1 do
|
||||
local spell_id = tonumber (data[i])
|
||||
if spell_id and spell_id > 0 then
|
||||
if not glyph_info[spell_id] then -- not yet in cache, add it
|
||||
glyph_info[spell_id] = {}
|
||||
local glyph = glyph_info[spell_id]
|
||||
glyph.spell_id = spell_id
|
||||
|
||||
local offs = (i - msg_idx.glyphs) * 3 -- glyph details come in 3s (idx,glyph_id,glyph_type) so offset our index
|
||||
local start = msg_idx.glyph_detail
|
||||
glyph.idx = tonumber (data[start + offs])
|
||||
glyph.glyph_id = tonumber (data[start + offs + 1])
|
||||
glyph.glyph_type = tonumber (data[start + offs + 2])
|
||||
|
||||
local name, _, icon = GetSpellInfo(spell_id)
|
||||
glyph.name_localized = name
|
||||
glyph.icon = icon
|
||||
end
|
||||
info.glyphs[spell_id] = glyph_info[spell_id]
|
||||
end
|
||||
end
|
||||
info.glyphs = wipe (info.glyphs or {}) -- kept for addons that still refer to this
|
||||
|
||||
local mainq, staleq = self.state.mainq, self.state.staleq
|
||||
local want_inspect = not need_inspect and self.inspect_ready_used and (mainq[guid] or staleq[guid]) and 1 or nil
|
||||
@@ -858,16 +758,6 @@ function lib:PLAYER_SPECIALIZATION_CHANGED (unit)
|
||||
end
|
||||
|
||||
|
||||
function lib:GLYPH_ADDED ()
|
||||
self:DoPlayerUpdate ()
|
||||
end
|
||||
|
||||
|
||||
function lib:GLYPH_REMOVED ()
|
||||
self:DoPlayerUpdate ()
|
||||
end
|
||||
|
||||
|
||||
function lib:UNIT_NAME_UPDATE (unit)
|
||||
local group = self.cache
|
||||
local guid = UnitGUID (unit)
|
||||
@@ -907,22 +797,6 @@ function lib:UNIT_AURA (unit)
|
||||
info.not_visible = true
|
||||
end
|
||||
end
|
||||
|
||||
-- Fix role if unit is a protection warrior in Gladiator Stance.
|
||||
-- Check for "not the other two level-100 talents" in case talent info isn't ready.
|
||||
if info.global_spec_id == warrior_protection_spec_id then
|
||||
if HasGladiatorStance (unit, info) then
|
||||
if info.spec_role ~= "DAMAGER" then
|
||||
info.spec_role = "DAMAGER"
|
||||
info.spec_role_detailed = "melee"
|
||||
self.events:Fire (UPDATE_EVENT, guid, unit, info)
|
||||
end
|
||||
elseif info.spec_role ~= "TANK" then
|
||||
info.spec_role = "TANK"
|
||||
info.spec_role_detailed = "tank"
|
||||
self.events:Fire (UPDATE_EVENT, guid, unit, info)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
local MAJOR, MINOR = "LibItemUpgradeInfo-1.0", 15
|
||||
local MAJOR, MINOR = "LibItemUpgradeInfo-1.0", 24
|
||||
local type,tonumber,select,strsplit,GetItemInfoFromHyperlink=type,tonumber,select,strsplit,GetItemInfoFromHyperlink
|
||||
local library,previous = _G.LibStub:NewLibrary(MAJOR, MINOR)
|
||||
local lib=library --#lib Needed to keep Eclipse LDT happy
|
||||
if not lib then return end
|
||||
local pp=print
|
||||
--[===[@debug@
|
||||
LoadAddOn("Blizzard_DebugTools")
|
||||
LoadAddOn("LibDebug")
|
||||
if LibDebug then LibDebug() end
|
||||
--@end-debug@]===]
|
||||
--@non-debug@
|
||||
local print=function() end
|
||||
--@end-non-debug@
|
||||
local upgradeTable = {
|
||||
[ 1] = { upgrade = 1, max = 1, ilevel = 8 },
|
||||
[373] = { upgrade = 1, max = 3, ilevel = 4 },
|
||||
@@ -56,6 +61,10 @@ local upgradeTable = {
|
||||
[529] = { upgrade = 0, max = 2, ilevel = 0 },
|
||||
[530] = { upgrade = 1, max = 2, ilevel = 5 },
|
||||
[531] = { upgrade = 2, max = 2, ilevel = 10 },
|
||||
[535] = { upgrade = 1, max = 3, ilevel = 15 },
|
||||
[536] = { upgrade = 2, max = 3, ilevel = 30 },
|
||||
[537] = { upgrade = 3, max = 3, ilevel = 45 },
|
||||
[538] = { upgrade = 0, max = 3, ilevel = 0 },
|
||||
|
||||
}
|
||||
do
|
||||
@@ -64,6 +73,58 @@ do
|
||||
return stub
|
||||
end})
|
||||
end
|
||||
-- Tooltip Scanning stuff
|
||||
local itemLevelPattern = _G.ITEM_LEVEL:gsub("%%d", "(%%d+)")
|
||||
local soulboundPattern = _G.ITEM_SOULBOUND
|
||||
local boePattern=_G.ITEM_BIND_ON_EQUIP
|
||||
local bopPattern=_G.ITEM_BIND_ON_PICKUP
|
||||
local boaPattern1=_G.ITEM_BIND_TO_BNETACCOUNT
|
||||
local boaPattern2=_G.ITEM_BNETACCOUNTBOUND
|
||||
|
||||
local scanningTooltip
|
||||
local itemCache = setmetatable({},{__index=function(table,key) return {} end})
|
||||
local heirloomcolor
|
||||
local emptytable={}
|
||||
local function ScanTip(itemLink,itemLevel)
|
||||
if not heirloomcolor then heirloomcolor =_G.ITEM_QUALITY_COLORS[_G.LE_ITEM_QUALITY_HEIRLOOM].hex end
|
||||
if type(itemLink)=="number" then
|
||||
itemLink=select(2,GetItemInfo(itemLink))
|
||||
if not itemLink then return emptytable end
|
||||
end
|
||||
if type(itemCache[itemLink].ilevel)=="nil" then
|
||||
if not scanningTooltip then
|
||||
scanningTooltip = _G.CreateFrame("GameTooltip", "LibItemUpgradeInfoTooltip", nil, "GameTooltipTemplate")
|
||||
scanningTooltip:SetOwner(_G.WorldFrame, "ANCHOR_NONE")
|
||||
end
|
||||
scanningTooltip:ClearLines()
|
||||
local rc,message=pcall(scanningTooltip.SetHyperlink,scanningTooltip,itemLink)
|
||||
if (not rc) then
|
||||
return emptytable
|
||||
end
|
||||
-- line 1 is the item name
|
||||
-- line 2 may be the item level, or it may be a modifier like "Heroic"
|
||||
-- check up to line 6 just in case
|
||||
local ilevel,soulbound,bop,boe,boa,heirloom
|
||||
for i = 2, 6 do
|
||||
local label, text = _G["LibItemUpgradeInfoTooltipTextLeft"..i], nil
|
||||
if label then text=label:GetText() end
|
||||
if text then
|
||||
if ilevel==nil then ilevel = tonumber(text:match(itemLevelPattern)) end
|
||||
if soulbound==nil then soulbound = text:find(soulboundPattern) end
|
||||
if bop==nil then bop = text:find(bopPattern) end
|
||||
if boe==nil then boe = text:find(boePattern) end
|
||||
if boa==nil then boa = text:find(boaPattern1) end
|
||||
if boa==nil then boa = text:find(boaPattern2) end
|
||||
end
|
||||
end
|
||||
if (itemLink:find(heirloomcolor)) then
|
||||
heirloom=true
|
||||
end
|
||||
itemCache[itemLink]={ilevel=ilevel or itemLevel,soulbound=soulbound,bop=bop,boe=boe,heirloom=heirloom}
|
||||
end
|
||||
return itemCache[itemLink]
|
||||
end
|
||||
|
||||
|
||||
-- GetUpgradeID(itemString)
|
||||
--
|
||||
@@ -74,13 +135,13 @@ end
|
||||
-- Number - The upgrade ID (possibly 0), or nil if the input is invalid or
|
||||
-- does not contain upgrade info
|
||||
function lib:GetUpgradeID(itemString)
|
||||
--local instaid,upgradeid =itemString:match("item:%d+:%d+:%d+:%d+:%d+:%d+:%-?%d+:%-?%d+:%d+:(%d+):%d:%d:(%d)")
|
||||
--local instaid,upgradeid =itemString:match("item:%d+:%d+:%d+:%d+:%d+:%d+:%-?%d+:%-?%d+:%d+:%d+:(%d+):%d+:%d+:(%d+)")
|
||||
if type(itemString)~="string" then return end
|
||||
local itemString = itemString:match("item[%-?%d:]+") or ""-- Standardize itemlink to itemstring
|
||||
local instaid, _, numBonuses, affixes = select(12, strsplit(":", itemString, 15))
|
||||
instaid=tonumber(instaid) or 7
|
||||
numBonuses=tonumber(numBonuses) or 0
|
||||
if instaid >0 and (instaid-4)%8==0 then
|
||||
return tonumber(select(numBonuses + 1, strsplit(":", affixes)))
|
||||
return tonumber((select(numBonuses + 1, strsplit(":", affixes))))
|
||||
end
|
||||
end
|
||||
|
||||
@@ -158,7 +219,7 @@ end
|
||||
|
||||
-- GetHeirloomTrueLevel(itemString)
|
||||
--
|
||||
-- Returns the true item level for an heirloom.
|
||||
-- Returns the true item level for an heirloom (actually, returns the true level for any adapting item)
|
||||
--
|
||||
-- Arguments:
|
||||
-- itemString - String - An itemLink or itemString denoting the item
|
||||
@@ -169,58 +230,18 @@ end
|
||||
-- item tooltip, the second return value is false. Otherwise
|
||||
-- the second return value is true. If the input is invalid,
|
||||
-- (nil, false) is returned.
|
||||
do
|
||||
-- Convert the ITEM_LEVEL constant into a pattern for our use
|
||||
local itemLevelPattern = _G["ITEM_LEVEL"]:gsub("%%d", "(%%d+)")
|
||||
|
||||
local scanningTooltip
|
||||
local heirloomCache = {}
|
||||
function lib:GetHeirloomTrueLevel(itemString)
|
||||
if type(itemString) ~= "string" then return nil,false end
|
||||
local scantooltip=false
|
||||
local header,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14 = strsplit(":", itemString, 16)
|
||||
s13=tonumber(s13) or 0
|
||||
s14=tonumber(s14) or 0
|
||||
scantooltip=(s13==1 or s13==2) and (s14==693 or s14==615) -- Really to be better tested
|
||||
scantooltip=true
|
||||
local _, itemLink, rarity, itemLevel = GetItemInfo(itemString)
|
||||
if (not itemLink) then
|
||||
return nil,false
|
||||
end
|
||||
if not scantooltip then
|
||||
scantooltip=rarity == _G.LE_ITEM_QUALITY_HEIRLOOM
|
||||
end
|
||||
if scantooltip then
|
||||
local ilvl = heirloomCache[itemLink]
|
||||
if ilvl ~= nil then
|
||||
return ilvl, true
|
||||
end
|
||||
if not scanningTooltip then
|
||||
scanningTooltip = _G.CreateFrame("GameTooltip", "LibItemUpgradeInfoTooltip", nil, "GameTooltipTemplate")
|
||||
scanningTooltip:SetOwner(_G.WorldFrame, "ANCHOR_NONE")
|
||||
end
|
||||
scanningTooltip:ClearLines()
|
||||
local rc,message=pcall(scanningTooltip.SetHyperlink,scanningTooltip,itemLink)
|
||||
if (not rc) then
|
||||
return nil,false
|
||||
end
|
||||
-- line 1 is the item name
|
||||
-- line 2 may be the item level, or it may be a modifier like "Heroic"
|
||||
-- check up to line 4 just in case
|
||||
for i = 2, 4 do
|
||||
local label, text = _G["LibItemUpgradeInfoTooltipTextLeft"..i], nil
|
||||
if label then text=label:GetText() end
|
||||
if text then
|
||||
ilvl = tonumber(text:match(itemLevelPattern))
|
||||
if ilvl ~= nil then
|
||||
heirloomCache[itemLink] = ilvl
|
||||
return ilvl, true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return itemLevel, false
|
||||
-- Convert the ITEM_LEVEL constant into a pattern for our use
|
||||
function lib:GetHeirloomTrueLevel(itemString)
|
||||
if type(itemString) ~= "string" then return nil,false end
|
||||
local _, itemLink, rarity, itemLevel = GetItemInfo(itemString)
|
||||
if (not itemLink) then
|
||||
return nil,false
|
||||
end
|
||||
local rc=ScanTip(itemLink,itemLevel)
|
||||
if rc.ilevel then
|
||||
return rc.ilevel,true
|
||||
end
|
||||
return itemLevel, false
|
||||
end
|
||||
|
||||
-- GetUpgradedItemLevel(itemString)
|
||||
@@ -245,6 +266,77 @@ function lib:GetUpgradedItemLevel(itemString)
|
||||
end
|
||||
return ilvl
|
||||
end
|
||||
|
||||
-- IsBop(itemString)
|
||||
--
|
||||
-- Check an item for Bind On Pickup.
|
||||
--
|
||||
-- Arguments:
|
||||
-- itemString - String - An itemLink or itemString denoting the item
|
||||
--
|
||||
-- Returns:
|
||||
-- Boolean - True if Bind On Pickup
|
||||
|
||||
function lib:IsBop(itemString)
|
||||
local rc=ScanTip(itemString)
|
||||
return rc.bop
|
||||
end
|
||||
-- IsBoe(itemString)
|
||||
--
|
||||
-- Check an item for Bind On Equip.
|
||||
--
|
||||
-- Arguments:
|
||||
-- itemString - String - An itemLink or itemString denoting the item
|
||||
--
|
||||
-- Returns:
|
||||
-- Boolean - True if Bind On Equip
|
||||
|
||||
function lib:IsBoe(itemString)
|
||||
local rc=ScanTip(itemString)
|
||||
return rc.boe
|
||||
end
|
||||
-- IsBoa(itemString)
|
||||
--
|
||||
-- Check an item for Bind On Aaccount
|
||||
--
|
||||
-- Arguments:
|
||||
-- itemString - String - An itemLink or itemString denoting the item
|
||||
--
|
||||
-- Returns:
|
||||
-- Boolean - True if Bind On Equip
|
||||
|
||||
function lib:IsBoa(itemString)
|
||||
local rc=ScanTip(itemString)
|
||||
return rc.boa
|
||||
end
|
||||
|
||||
-- IsHeirloom(itemString)
|
||||
--
|
||||
-- Check an item for Heirloom
|
||||
--
|
||||
-- Arguments:
|
||||
-- itemString - String - An itemLink or itemString denoting the item
|
||||
--
|
||||
-- Returns:
|
||||
-- Boolean - True if Heirloom
|
||||
|
||||
-- IsHeirloom(itemString)
|
||||
--
|
||||
-- Check an item for Heirloom
|
||||
--
|
||||
-- Arguments:
|
||||
-- itemString - String - An itemLink or itemString denoting the item
|
||||
--
|
||||
-- Returns:
|
||||
-- Boolean - True if Heirloom
|
||||
|
||||
function lib:IsHeirloom(itemString)
|
||||
local rc=ScanTip(itemString)
|
||||
return rc.heirloom
|
||||
end
|
||||
|
||||
|
||||
|
||||
local GetItemInfo=GetItemInfo
|
||||
lib.itemcache=lib.itemcache or
|
||||
setmetatable({miss=0,tot=0},{
|
||||
@@ -316,9 +408,6 @@ function lib:GetCacheStats()
|
||||
local perc=( h>0) and h/c.tot*100 or 0
|
||||
return c.miss,h,perc
|
||||
end
|
||||
if lib.itemframe and lib.itemframe.UnregisterEvent then
|
||||
lib.itemframe:UnregisterEvent('GET_ITEM_INFO_RECEIVED')
|
||||
end
|
||||
|
||||
--[===========[ ]===========]
|
||||
--[===[ Debug utilities ]===]
|
||||
@@ -408,7 +497,7 @@ do
|
||||
pp("LibItemUpgradeInfo-1.0: |cff00ff00No changes|r")
|
||||
else
|
||||
pp("LibItemUpgradeInfo-1.0: |cffff0000New table:|r {")
|
||||
ppDiffTable(upgradeTable, newTable)
|
||||
printDiffTable(upgradeTable, newTable)
|
||||
pp("}")
|
||||
end
|
||||
else
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
## Interface: 60200
|
||||
## Interface: 70000
|
||||
## Title: Lib: ItemUpgradeInfo-1.0
|
||||
## Notes: Database of item upgrade IDs
|
||||
## Author: eridius
|
||||
## Version: Release-60203-15 6.2.2
|
||||
## X-Revision: efdd719
|
||||
## Version: Release-70000-24 6.2.2
|
||||
## X-Revision: f1a2b99
|
||||
## X-Category: Library
|
||||
## X-Curse-Packaged-Version: Release-60203-15
|
||||
## X-Curse-Packaged-Version: Release-70000-24
|
||||
## X-Curse-Project-Name: LibItemUpgradeInfo-1.0
|
||||
## X-Curse-Project-ID: libitemupgradeinfo-1-0
|
||||
## X-Curse-Repository-ID: wow/libitemupgradeinfo-1-0/mainline
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
## X-Website: http://www.wowace.com/addons/libstub/
|
||||
## X-Category: Library
|
||||
## X-License: Public Domain
|
||||
## X-Curse-Packaged-Version: Release-60203-15
|
||||
## X-Curse-Packaged-Version: Release-70000-24
|
||||
## X-Curse-Project-Name: LibItemUpgradeInfo-1.0
|
||||
## X-Curse-Project-ID: libitemupgradeinfo-1-0
|
||||
## X-Curse-Repository-ID: wow/libitemupgradeinfo-1-0/mainline
|
||||
|
||||
@@ -15,5 +15,6 @@
|
||||
<Script file="LibWindow-1.1\LibWindow-1.1.lua"/>
|
||||
<Include file="LibCompress\lib.xml"/>
|
||||
<Include file="LibItemUpgradeInfo-1.0\LibItemUpgradeInfo-1.0.xml"/>
|
||||
<Include file="LibGroupInSpecT-1.1\lib.xml"/>
|
||||
<Include file="DF\load.xml"/>
|
||||
</Ui>
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
_ = nil
|
||||
_detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0")
|
||||
_detalhes.build_counter = 2698 --it's 2697 for release
|
||||
_detalhes.userversion = "v5.11"
|
||||
_detalhes.build_counter = 2735 --it's 2735 for release
|
||||
_detalhes.userversion = "v5.12"
|
||||
_detalhes.realversion = 110 --core version
|
||||
_detalhes.version = _detalhes.userversion .. " (core " .. _detalhes.realversion .. ")"
|
||||
Details = _detalhes
|
||||
@@ -21,7 +21,10 @@ do
|
||||
local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" )
|
||||
|
||||
--[[
|
||||
|cFFFFFF00v5.11 (|cFFFFCC00July 26, 2016|r|cFFFFFF00)|r:\n\n
|
||||
|cFFFFFF00v5.12 (|cFFFFCC00July 29, 2016|r|cFFFFFF00)|r:\n\n
|
||||
|cFFFFFF00-|r Fixed some issues with spec detection and LibGroupInSpecT-1.1 has need enabled back again.\n\n
|
||||
|cFFFFFF00-|r Fixed an issue with micro displays not loading settings after a logon.\n\n
|
||||
|cFFFFFF00-|r Another wave of workarounds to prevent the client image cache bug.\n\n
|
||||
|cFFFFFF00-|r fixed the spam of 'segment not added to overall'.\n\n
|
||||
|cFFFFFF00-|r stormlash and blessing of might workarouds.\n\n
|
||||
|cFFFFFF00-|r warrior rampage fix.\n\n
|
||||
@@ -29,7 +32,9 @@ do
|
||||
--]]
|
||||
--
|
||||
|
||||
Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v5.11 (|cFFFFCC00July 26, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r fixed the spam of 'segment not added to overall'.\n\n|cFFFFFF00-|r stormlash and blessing of might workarouds.\n\n|cFFFFFF00-|r warrior rampage fix.\n\n|cFFFFFF00-|r hunter throw axe fix.\n\n|cFFFFFF00v5.10c (|cFFFFCC00July 22, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Trying a workaround for the wow client's texture cache bug which causes FPS drops, please delete the file 'spec_icons_normal.TGA' from details/image folder.\n\n|cFFFFFF00v5.10b (|cFFFFCC00July 21, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed warlock's Soul Effigy.\n\n|cFFFFFF00v5.10a (|cFFFFCC00July 20, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with Calc Leech plugin.\n\n|cFFFFFF00v5.10 (|cFFFFCC00July 19, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Using .BLP format for images. If you have FPS drops caused by Details!, delete ALL .TGA files inside the folder Details/Images/\n\n|cFFFFFF00v5.8 (|cFFFFCC00July 11, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Big framework update. May have some bugs, please report to us if you find any.\n\n|cFFFFFF00v5.8 (|cFFFFCC00June 27, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Energy and Resources are working properly now.\n\n|cFFFFFF00-|r Added raid information for The Emerald Nightmare.\n\n|cFFFFFF00v5.7 (|cFFFFCC00June 16, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Most of the raid plugins got added on this version.\n\n|cFFFFFF00-|r Plugin 'Damage, The Game!' also got damage goals updated.\n\n|cFFFFFF00v5.5 (|cFFFFCC00June 03, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Default skin is now 'Safe Skin Legion Beta' which helps a little with the disabled texture issue.\n|cFFFFFF00-|r If you're using another skin, you may change at the options panel /details options > Skin Selection.\n|cFFFFFF00-|r You also can disable the class icons at Bars: General > Icon File."
|
||||
|
||||
--Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v5.10c (|cFFFFCC00July 22, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Trying a workaround for the wow client's texture cache bug which causes FPS drops, please delete the file 'spec_icons_normal.TGA' from details/image folder.\n\n|cFFFFFF00v5.10b (|cFFFFCC00July 21, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed warlock's Soul Effigy.\n\n|cFFFFFF00v5.10a (|cFFFFCC00July 20, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with Calc Leech plugin.\n\n|cFFFFFF00v5.10 (|cFFFFCC00July 19, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Using .BLP format for images. If you have FPS drops caused by Details!, delete ALL .TGA files inside the folder Details/Images/\n\n|cFFFFFF00v5.8 (|cFFFFCC00July 11, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Big framework update. May have some bugs, please report to us if you find any.\n\n|cFFFFFF00v5.8 (|cFFFFCC00June 27, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Energy and Resources are working properly now.\n\n|cFFFFFF00-|r Added raid information for The Emerald Nightmare.\n\n|cFFFFFF00v5.7 (|cFFFFCC00June 16, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Most of the raid plugins got added on this version.\n\n|cFFFFFF00-|r Plugin 'Damage, The Game!' also got damage goals updated.\n\n|cFFFFFF00v5.5 (|cFFFFCC00June 03, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Default skin is now 'Safe Skin Legion Beta' which helps a little with the disabled texture issue.\n|cFFFFFF00-|r If you're using another skin, you may change at the options panel /details options > Skin Selection.\n|cFFFFFF00-|r You also can disable the class icons at Bars: General > Icon File."
|
||||
Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v5.12 (|cFFFFCC00July 29, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed some issues with spec detection and LibGroupInSpecT-1.1 has need enabled back again.\n\n|cFFFFFF00-|r Fixed an issue with micro displays not loading settings after a logon.\n\n|cFFFFFF00-|r Another wave of workarounds to prevent the client image cache bug.\n\n|cFFFFFF00-|r fixed the spam of 'segment not added to overall'.\n\n|cFFFFFF00-|r stormlash and blessing of might workarouds.\n\n|cFFFFFF00-|r warrior rampage fix.\n\n|cFFFFFF00-|r hunter throw axe fix.\n\n|cFFFFFF00v5.10c (|cFFFFCC00July 22, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Trying a workaround for the wow client's texture cache bug which causes FPS drops, please delete the file 'spec_icons_normal.TGA' from details/image folder.\n\n|cFFFFFF00v5.10b (|cFFFFCC00July 21, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed warlock's Soul Effigy.\n\n|cFFFFFF00v5.10a (|cFFFFCC00July 20, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with Calc Leech plugin.\n\n|cFFFFFF00v5.10 (|cFFFFCC00July 19, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Using .BLP format for images. If you have FPS drops caused by Details!, delete ALL .TGA files inside the folder Details/Images/\n\n|cFFFFFF00v5.8 (|cFFFFCC00July 11, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Big framework update. May have some bugs, please report to us if you find any.\n\n|cFFFFFF00v5.8 (|cFFFFCC00June 27, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Energy and Resources are working properly now.\n\n|cFFFFFF00-|r Added raid information for The Emerald Nightmare.\n\n|cFFFFFF00v5.7 (|cFFFFCC00June 16, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Most of the raid plugins got added on this version.\n\n|cFFFFFF00-|r Plugin 'Damage, The Game!' also got damage goals updated.\n\n|cFFFFFF00v5.5 (|cFFFFCC00June 03, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Default skin is now 'Safe Skin Legion Beta' which helps a little with the disabled texture issue.\n|cFFFFFF00-|r If you're using another skin, you may change at the options panel /details options > Skin Selection.\n|cFFFFFF00-|r You also can disable the class icons at Bars: General > Icon File."
|
||||
|
||||
Loc ["STRING_DETAILS1"] = "|cffffaeaeDetails!:|r "
|
||||
|
||||
|
||||
@@ -137,10 +137,9 @@
|
||||
|
||||
--> try to get the actor class from name
|
||||
local function get_actor_class (novo_objeto, nome, flag, serial)
|
||||
|
||||
--> get spec
|
||||
if (_detalhes.track_specs) then
|
||||
local have_cached = cached_specs [serial]
|
||||
local have_cached = _detalhes.cached_specs [serial]
|
||||
if (have_cached) then
|
||||
novo_objeto.spec = have_cached
|
||||
--> check is didn't changed the spec:
|
||||
|
||||
+1
-4
@@ -8,11 +8,8 @@ local select = select
|
||||
local floor = floor
|
||||
|
||||
local GetNumGroupMembers = GetNumGroupMembers
|
||||
|
||||
local ItemUpgradeInfo = LibStub ("LibItemUpgradeInfo-1.0")
|
||||
|
||||
--LibGroupInSpecT-1.1 is giving errors on Legion Beta
|
||||
--local LibGroupInSpecT = LibStub ("LibGroupInSpecT-1.1")
|
||||
local LibGroupInSpecT = LibStub ("LibGroupInSpecT-1.1")
|
||||
|
||||
function _detalhes:UpdateGears()
|
||||
|
||||
|
||||
@@ -3405,6 +3405,19 @@ SPELL_POWER_OBSOLETE2 = 15;
|
||||
return _detalhes.parser_functions:ZONE_CHANGED_NEW_AREA (...)
|
||||
end
|
||||
|
||||
function _detalhes.parser_functions:PLAYER_SPECIALIZATION_CHANGED()
|
||||
local specIndex = GetSpecialization()
|
||||
if (specIndex) then
|
||||
local specID = GetSpecializationInfo (specIndex)
|
||||
if (specID and specID ~= 0) then
|
||||
local guid = UnitGUID ("player")
|
||||
if (guid) then
|
||||
_detalhes.cached_specs [guid] = specID
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- ~encounter
|
||||
function _detalhes.parser_functions:ENCOUNTER_START (...)
|
||||
|
||||
|
||||
@@ -1662,7 +1662,7 @@ extraWindow:SetBackdropColor (0, 0, 0, 0.9)
|
||||
|
||||
_G.DetailsStatusBarOptionsTextStyleDropdown.MyObject:SetFixedParameter (child)
|
||||
|
||||
_G.DetailsStatusBarOptionsTextColorTexture:SetTexture (child.options.textColor[1], child.options.textColor[2], child.options.textColor[3], child.options.textColor[4])
|
||||
_G.DetailsStatusBarOptionsTextColorTexture:SetColorTexture (child.options.textColor[1], child.options.textColor[2], child.options.textColor[3], child.options.textColor[4])
|
||||
|
||||
_G.DetailsStatusBarOptionsSliderFontSize.MyObject:SetFixedParameter (child)
|
||||
_G.DetailsStatusBarOptionsSliderFontSize.MyObject:SetValue (child.options.textSize)
|
||||
|
||||
+10
-10
@@ -43,7 +43,7 @@ local _
|
||||
|
||||
--> install wow interface skin:
|
||||
_detalhes:InstallSkin ("WoW Interface", {
|
||||
file = [[Interface\AddOns\Details\images\skins\default_skin]],
|
||||
file = [[Interface\AddOns\Details\images\skins\default_skin.blp]],
|
||||
author = "Details!",
|
||||
version = "1.0",
|
||||
site = "unknown",
|
||||
@@ -274,7 +274,7 @@ local _
|
||||
end
|
||||
|
||||
_detalhes:InstallSkin ("Minimalistic", {
|
||||
file = [[Interface\AddOns\Details\images\skins\classic_skin_v1]],
|
||||
file = [[Interface\AddOns\Details\images\skins\classic_skin_v1.blp]],
|
||||
author = "Details!",
|
||||
version = "1.0",
|
||||
site = "unknown",
|
||||
@@ -496,7 +496,7 @@ local _
|
||||
})
|
||||
|
||||
_detalhes:InstallSkin ("Minimalistic v2", {
|
||||
file = [[Interface\AddOns\Details\images\skins\classic_skin]],
|
||||
file = [[Interface\AddOns\Details\images\skins\classic_skin.blp]],
|
||||
author = "Details!",
|
||||
version = "1.0",
|
||||
site = "unknown",
|
||||
@@ -716,7 +716,7 @@ local _
|
||||
})
|
||||
|
||||
_detalhes:InstallSkin ("Serenity", {
|
||||
file = [[Interface\AddOns\Details\images\skins\flat_skin]],
|
||||
file = [[Interface\AddOns\Details\images\skins\flat_skin.blp]],
|
||||
author = "Details!",
|
||||
version = "1.0",
|
||||
site = "unknown",
|
||||
@@ -1010,7 +1010,7 @@ local _
|
||||
end
|
||||
|
||||
_detalhes:InstallSkin ("Forced Square", {
|
||||
file = [[Interface\AddOns\Details\images\skins\simplygray_skin]],
|
||||
file = [[Interface\AddOns\Details\images\skins\simplygray_skin.blp]],
|
||||
author = "Details!",
|
||||
version = "1.0",
|
||||
site = "unknown",
|
||||
@@ -1273,7 +1273,7 @@ local _
|
||||
|
||||
--> install imperial skin:
|
||||
_detalhes:InstallSkin ("Imperial Skin", {
|
||||
file = "Interface\\AddOns\\Details\\images\\skins\\imperial_skin",
|
||||
file = "Interface\\AddOns\\Details\\images\\skins\\imperial_skin.blp",
|
||||
author = "Details!",
|
||||
version = "1.1",
|
||||
site = "unknown",
|
||||
@@ -1395,7 +1395,7 @@ local _
|
||||
|
||||
|
||||
_detalhes:InstallSkin ("ElvUI Frame Style", {
|
||||
file = [[Interface\AddOns\Details\images\skins\elvui]],
|
||||
file = [[Interface\AddOns\Details\images\skins\elvui.blp]],
|
||||
author = "Details!",
|
||||
version = "1.0",
|
||||
site = "unknown",
|
||||
@@ -1644,7 +1644,7 @@ local _
|
||||
})
|
||||
|
||||
_detalhes:InstallSkin ("ElvUI Style II", {
|
||||
file = [[Interface\AddOns\Details\images\skins\elvui_opaque]],
|
||||
file = [[Interface\AddOns\Details\images\skins\elvui_opaque.blp]],
|
||||
author = "Details!",
|
||||
version = "1.0",
|
||||
site = "unknown",
|
||||
@@ -1827,7 +1827,7 @@ local _
|
||||
|
||||
|
||||
_detalhes:InstallSkin ("New Gray", {
|
||||
file = [[Interface\AddOns\Details\images\skins\classic_skin_v1]],
|
||||
file = [[Interface\AddOns\Details\images\skins\classic_skin_v1.blp]],
|
||||
author = "Details!",
|
||||
version = "1.0",
|
||||
site = "unknown",
|
||||
@@ -2087,7 +2087,7 @@ local _
|
||||
})
|
||||
|
||||
_detalhes:InstallSkin ("Safe Skin Legion Beta", {
|
||||
file = [[Interface\AddOns\Details\images\skins\classic_skin_v1]],
|
||||
file = [[Interface\AddOns\Details\images\skins\classic_skin_v1.blp]],
|
||||
author = "Details!",
|
||||
version = "1.0",
|
||||
site = "unknown",
|
||||
|
||||
@@ -2676,7 +2676,7 @@ function window:CreateFrame17()
|
||||
window:CreateLineBackground2 (frame17, "autoCurrentSlider", "autoCurrentLabel", Loc ["STRING_OPTIONS_INSTANCE_CURRENT_DESC"])
|
||||
|
||||
--> trash suppression
|
||||
g:NewLabel (frame17, _, "$parentTrashSuppressionLabel", "TrashSuppressionLabel", "Trash Suppression", "GameFontHighlightLeft")
|
||||
g:NewLabel (frame17, _, "$parentTrashSuppressionLabel", "TrashSuppressionLabel", Loc ["STRING_OPTIONS_TRASH_SUPPRESSION"], "GameFontHighlightLeft")
|
||||
g:NewSlider (frame17, _, "$parentTrashSuppressionSlider", "TrashSuppressionSlider", SLIDER_WIDTH, SLIDER_HEIGHT, 0, 180, 1, _detalhes.instances_suppress_trash, nil, nil, nil, options_slider_template)
|
||||
|
||||
frame17.TrashSuppressionSlider:SetPoint ("left", frame17.TrashSuppressionLabel, "right", 2)
|
||||
@@ -2686,7 +2686,7 @@ function window:CreateFrame17()
|
||||
_detalhes:SendOptionsModifiedEvent (DetailsOptionsWindow.instance)
|
||||
end)
|
||||
|
||||
window:CreateLineBackground2 (frame17, "TrashSuppressionSlider", "TrashSuppressionLabel", "For |cFFFFFF00X|r seconds, suppress auto switching to show trash segments (|cFFFFFF00only after defeat a boss encounter|r).")
|
||||
window:CreateLineBackground2 (frame17, "TrashSuppressionSlider", "TrashSuppressionLabel", Loc ["STRING_OPTIONS_TRASH_SUPPRESSION_DESC"])
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6209,6 +6209,10 @@ function _detalhes:SetUserCustomSkinFile (file)
|
||||
self:ChangeSkin()
|
||||
end
|
||||
|
||||
function _detalhes:RefreshMicroDisplays()
|
||||
_detalhes.StatusBar:UpdateOptions (self)
|
||||
end
|
||||
|
||||
function _detalhes:ChangeSkin (skin_name)
|
||||
|
||||
if (not skin_name) then
|
||||
@@ -6406,6 +6410,7 @@ function _detalhes:ChangeSkin (skin_name)
|
||||
--> refresh the side of the micro displays and its lock state
|
||||
self:MicroDisplaysSide()
|
||||
self:MicroDisplaysLock()
|
||||
self:RefreshMicroDisplays()
|
||||
|
||||
--> update statusbar
|
||||
if (self.show_statusbar) then
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+5
-1
@@ -260,6 +260,8 @@ function _G._detalhes:Start()
|
||||
self.listener:RegisterEvent ("PLAYER_ROLES_ASSIGNED")
|
||||
self.listener:RegisterEvent ("ROLE_CHANGED_INFORM")
|
||||
|
||||
self.listener:RegisterEvent ("PLAYER_SPECIALIZATION_CHANGED")
|
||||
|
||||
self.parser_frame:RegisterEvent ("COMBAT_LOG_EVENT_UNFILTERED")
|
||||
|
||||
--> group
|
||||
@@ -504,7 +506,7 @@ function _G._detalhes:Start()
|
||||
|
||||
--version
|
||||
self.gump:Fade (instance._version, 0)
|
||||
instance._version:SetText ("Details! " .. _detalhes.userversion .. " (core: " .. self.realversion .. ")")
|
||||
instance._version:SetText ("Details! Beta " .. _detalhes.userversion .. " (core: " .. self.realversion .. ")")
|
||||
instance._version:SetPoint ("bottomleft", instance.baseframe, "bottomleft", 5, 1)
|
||||
|
||||
if (instance.auto_switch_to_old) then
|
||||
@@ -607,6 +609,8 @@ function _G._detalhes:Start()
|
||||
wipe (_detalhes.cached_talents)
|
||||
end
|
||||
|
||||
--> get the player spec
|
||||
C_Timer.After (2, _detalhes.parser_functions.PLAYER_SPECIALIZATION_CHANGED)
|
||||
|
||||
_detalhes.chat_embed:CheckChatEmbed (true)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user