From bc38779c34aaafdcc5245d84b6218d396436bb50 Mon Sep 17 00:00:00 2001 From: Repooc Date: Mon, 17 Mar 2014 21:20:15 -0400 Subject: [PATCH] Some changes to the inspect frame... seems functional --- ElvUI_SLE/modules/characterframe/communication.lua | 36 +- ElvUI_SLE/modules/characterframe/inspectframe.lua | 381 +++++++++----------- 2 files changed, 209 insertions(+), 208 deletions(-) diff --git a/ElvUI_SLE/modules/characterframe/communication.lua b/ElvUI_SLE/modules/characterframe/communication.lua index 647748c..8ff27a1 100644 --- a/ElvUI_SLE/modules/characterframe/communication.lua +++ b/ElvUI_SLE/modules/characterframe/communication.lua @@ -83,6 +83,7 @@ if not AISM then } AISM.DataTypeTable = { ['PLI'] = 'PlayerInfo', + ['GLD'] = 'GuildInfo', ['PF1'] = 'Profession', ['PF2'] = 'Profession', ['ASP'] = 'ActiveSpec', @@ -442,12 +443,21 @@ if not AISM then AISM.Updater:RegisterEvent('COMBAT_LOG_EVENT_UNFILTERED') --<< Player Info >>-- - function AISM:GetPlayerInfoString(TableToSave) + function AISM:SettingInspectData(TableToSave) local guildName, guildRankName = GetGuildInfo('player') TableToSave.PlayerInfo = playerName..'_'..UnitPVPName('player')..'/'..playerRealm..'/'..UnitLevel('player')..'/'..playerClass..'/'..playerClassID..'/'..playerRace..'/'..playerRaceID..'/'..playerSex..(guildName and '/'..guildName..'/'..guildRankName or '') + + if IsInGuild() then + TableToSave.GuildInfo = GetGuildLevel()..'/'..GetNumGuildMembers() + + for _, DataString in ipairs({ GetGuildLogoInfo(UnitID) }) do + TableToSave.GuildInfo = TableToSave.GuildInfo..'/'..DataString + end + end end - + + function AISM:SendData(InputData, Prefix, Channel, WhisperTarget) Channel = Channel or IsInGroup(LE_PARTY_CATEGORY_INSTANCE) and 'INSTANCE_CHAT' or string.upper(self.CurrentGroupMode) Prefix = Prefix or 'AISM' @@ -495,6 +505,10 @@ if not AISM then if InputData.PlayerInfo then Data[#Data + 1] = 'PLI:'..InputData.PlayerInfo end + + if InputData.GuildInfo then + Data[#Data + 1] = 'GLD:'..InputData.GuildInfo + end local DataString = '' local stringLength = 0 @@ -554,7 +568,6 @@ if not AISM then local LastSendGroupType = 'NoGroup' local LastSendInstanceType = 'field' - local asdf AISM:SetScript('OnUpdate', function(self, elapsed) if not self.Initialize then SendAddonMessage('AISM', 'AISM_Initialize', 'WHISPER', playerName) @@ -592,13 +605,14 @@ if not AISM then end if self.needSendDataGroup and self.Updater.SpecUpdated and self.Updater.GlyphUpdated and self.Updater.GearUpdated then + print('??') self.SendDataGroupUpdated = self.SendDataGroupUpdated - elapsed if self.SendDataGroupUpdated < 0 then self.SendDataGroupUpdated = self.SendMessageDelay self:SendData(self.PlayerData_ShortString) - print('센드데이터') + print('센드??터') self.needSendDataGroup = nil end end @@ -611,13 +625,13 @@ if not AISM then self.SendDataGuildUpdated = self.SendMessageDelay SendAddonMessage('AISM', 'AISM_GUILD_RegistME', 'GUILD') - print('길드에 AISM_GUILD_RegistME 전송') + print('길드? AISM_GUILD_RegistME 전송') self.needSendDataGuild = nil end end if self.needSendDataGroup == nil and self.needSendDataGuild == nil then - print('종료') + print('??') self:Hide() -- close function end end @@ -660,7 +674,7 @@ if not AISM then if needplayerName == playerName and needplayerRealm == playerRealm then local DataToSend = E:CopyTable({}, self.PlayerData) - self:GetPlayerInfoString(DataToSend) + self:SettingInspectData(DataToSend) self:SendData(DataToSend, Prefix, Channel, Sender) end @@ -776,6 +790,14 @@ if not AISM then TableToSave.GenderID = stringTable[8] TableToSave.guildName = stringTable[9] TableToSave.guildRankName = stringTable[10] + elseif self.DataTypeTable[DataType] == 'GuildInfo' then + TableToSave.guildLevel = stringTable[1] + TableToSave.guildNumMembers = stringTable[2] + + for i = 3, #stringTable do + TableToSave.guildEmblem = TableToSave.guildEmblem or {} + TableToSave.guildEmblem[i - 2] = stringTable[i] + end end end end diff --git a/ElvUI_SLE/modules/characterframe/inspectframe.lua b/ElvUI_SLE/modules/characterframe/inspectframe.lua index b875fd9..aa3864a 100644 --- a/ElvUI_SLE/modules/characterframe/inspectframe.lua +++ b/ElvUI_SLE/modules/characterframe/inspectframe.lua @@ -1,11 +1,11 @@ local E, L, V, P, G, _ = unpack(ElvUI) -local KI = E:NewModule('KnightFrame_Inspect', 'AceEvent-3.0') local AISM = _G['Armory_InspectSupportModule'] +local IFO = E:NewModule('InspectFrameOptions', 'AceEvent-3.0') -------------------------------------------------------------------------------- --<< KnightFrame : Upgrade Inspect Frame like Wow-Armory >>-- -------------------------------------------------------------------------------- -local f = CreateFrame('Frame', 'KnightInspect', E.UIParent) +local KI = CreateFrame('Frame', 'KnightInspect', E.UIParent) local ENI = _G['EnhancedNotifyInspectFrame'] or { ['CancelInspect'] = function() end, } local C = SLArmoryConstants @@ -24,7 +24,7 @@ local Default_NotifyInspect local Default_InspectUnit --<< Key Table >>-- -KI.PageList = { ['Character'] = 'CHARACTER', ['Info'] = 'INFO', ['Spec'] = 'TALENTS', ['PvP'] = 'PVP' } +KI.PageList = { ['Character'] = 'CHARACTER', ['Info'] = 'INFO', ['Spec'] = 'TALENTS' } KI.InfoPageCategoryList = { 'Profession', 'PvP', 'Guild' } KI.ModelList = { ['Human'] = { ['RaceID'] = 1, [2] = { ['x'] = 0.02, ['y'] = -0.025, ['z'] = -0.6 }, [3] = { ['x'] = -0.01, ['y'] = -0.08, ['z'] = -0.6 } }, @@ -69,41 +69,41 @@ end function KI:ChangePage(buttonName) for pageType in pairs(self.PageList) do - if f[pageType] then + if self[pageType] then if buttonName == pageType..'Button' then - f[pageType]:Show() + self[pageType]:Show() else - f[pageType]:Hide() + self[pageType]:Hide() end end end - f.MainHandSlot:ClearAllPoints() - f.SecondaryHandSlot:ClearAllPoints() + self.MainHandSlot:ClearAllPoints() + self.SecondaryHandSlot:ClearAllPoints() if buttonName == 'CharacterButton' then for _, slotName in pairs(C.GearList) do - f[slotName].ItemLevel:Hide() + self[slotName].ItemLevel:Hide() end - f.Model:Point('TOPRIGHT', self.HandsSlot) - f.MainHandSlot:Point('BOTTOMRIGHT', f.BP, 'TOP', -2, SPACING) - f.SecondaryHandSlot:Point('BOTTOMLEFT', f.BP, 'TOP', 2, SPACING) + self.Model:Point('TOPRIGHT', self.HandsSlot) + self.MainHandSlot:Point('BOTTOMRIGHT', self.BP, 'TOP', -2, SPACING) + self.SecondaryHandSlot:Point('BOTTOMLEFT', self.BP, 'TOP', 2, SPACING) else for _, slotName in pairs(C.GearList) do - f[slotName].ItemLevel:Show() + self[slotName].ItemLevel:Show() end - f.Model:Point('TOPRIGHT', UIParent, 'BOTTOMLEFT') - f.MainHandSlot:Point('BOTTOMLEFT', f.BP, 'TOPLEFT', 1, SPACING) - f.SecondaryHandSlot:Point('BOTTOMRIGHT', f.BP, 'TOPRIGHT', -1, SPACING) + self.Model:Point('TOPRIGHT', UIParent, 'BOTTOMLEFT') + self.MainHandSlot:Point('BOTTOMLEFT', self.BP, 'TOPLEFT', 1, SPACING) + self.SecondaryHandSlot:Point('BOTTOMRIGHT', self.BP, 'TOPRIGHT', -1, SPACING) end end KI.EquipmentSlot_OnEnter = function(self) - --if KI.CurrentInspectData.Gear[self.SlotName].ItemLink then if self.Link then GameTooltip:SetOwner(self, 'ANCHOR_RIGHT') GameTooltip:SetHyperlink(self.Link) - --GameTooltip:SetHyperlink(KI.CurrentInspectData.Gear[self.SlotName].ItemLink) - + + --ITEM_SOULBOUND + local CurrentLineText, SetName for i = 1, GameTooltip:NumLines() do CurrentLineText = _G['GameTooltipTextLeft'..i]:GetText() @@ -138,6 +138,7 @@ KI.EquipmentSlot_OnEnter = function(self) _G['GameTooltipTextLeft'..i]:SetText(string.gsub(CurrentLineText, ' %(%d/', ' %('..SetCount..'/', 1)) end + break end end @@ -407,7 +408,7 @@ function KI:CreateInspectFrame() local endx, endy, z, x, y if button == 'LeftButton' then - f.Model:SetScript('OnUpdate', function(self) + KI.Model:SetScript('OnUpdate', function(self) endx, endy = GetCursorPosition() self.rotation = (endx - self.startx) / 34 + self:GetFacing() @@ -415,7 +416,7 @@ function KI:CreateInspectFrame() self.startx, self.starty = GetCursorPosition() end) elseif button == 'RightButton' then - f.Model:SetScript('OnUpdate', function(self) + KI.Model:SetScript('OnUpdate', function(self) endx, endy = GetCursorPosition() z, x, y = self:GetPosition(z, x, y) @@ -529,7 +530,7 @@ function KI:CreateInspectFrame() Slot['Socket'..i].Socket:SetFrameLevel(CoreFrameLevel + 4) Slot['Socket'..i].Socket:SetScript('OnEnter', C.CommonScript.GemSocket_OnEnter) Slot['Socket'..i].Socket:SetScript('OnLeave', C.CommonScript.OnLeave) - Slot['Socket'..i].Socket:SetScript('OnClick', GemSocket_OnClick) + Slot['Socket'..i].Socket:SetScript('OnClick', self.GemSocket_OnClick) Slot['Socket'..i].Texture = Slot['Socket'..i].Socket:CreateTexture(nil, 'OVERLAY') Slot['Socket'..i].Texture:SetTexCoord(.1, .9, .1, .9) @@ -572,6 +573,9 @@ function KI:CreateInspectFrame() self.Trinket0Slot:Point('BOTTOMRIGHT', self.Trinket1Slot, 'TOPRIGHT', 0, SPACING) self.Trinket1Slot:Point('RIGHT', self.BP, -1, 0) self.Trinket1Slot:Point('BOTTOM', self.SecondaryHandSlot, 'TOP', 0, SPACING) + + -- ItemLevel + C.Toolkit.TextSetting(self.Character, nil, { ['Tag'] = 'AverageItemLevel', ['FontSize'] = 12, }, 'TOP', self.Model) end self.Model:Point('TOPLEFT', self.HeadSlot) @@ -606,62 +610,62 @@ function KI:CreateInspectFrame() self.Info.Page:Point('TOPRIGHT', self.Info, -1, 0) self.Info.Page:Height(600) - local g + local f for _, CategoryType in pairs(KI.InfoPageCategoryList) do - g = CreateFrame('ScrollFrame', nil, self.Info.Page) - g:SetBackdrop({ + f = CreateFrame('ScrollFrame', nil, self.Info.Page) + f:SetBackdrop({ bgFile = E.media.blankTex, edgeFile = E.media.blankTex, tile = false, tileSize = 0, edgeSize = E.mult, insets = { left = 0, right = 0, top = 0, bottom = 0} }) - g:SetBackdropColor(.08, .08, .08, .8) - g:SetBackdropBorderColor(0, 0, 0) - g:Point('LEFT', self.Info.Page) - g:Point('RIGHT', self.Info.Page) - g:Height(INFO_TAB_SIZE + SPACING * 2) - - g.IconSlot = CreateFrame('Frame', nil, g) - g.IconSlot:Size(INFO_TAB_SIZE) - g.IconSlot:SetBackdrop({ + f:SetBackdropColor(.08, .08, .08, .8) + f:SetBackdropBorderColor(0, 0, 0) + f:Point('LEFT', self.Info.Page) + f:Point('RIGHT', self.Info.Page) + f:Height(INFO_TAB_SIZE + SPACING * 2) + + f.IconSlot = CreateFrame('Frame', nil, f) + f.IconSlot:Size(INFO_TAB_SIZE) + f.IconSlot:SetBackdrop({ bgFile = E.media.blankTex, edgeFile = E.media.blankTex, tile = false, tileSize = 0, edgeSize = E.mult, insets = { left = 0, right = 0, top = 0, bottom = 0} }) - g.IconSlot:Point('TOPLEFT', g, SPACING, -SPACING) - g.Icon = g.IconSlot:CreateTexture(nil, 'OVERLAY') - g.Icon:SetTexCoord(unpack(E.TexCoords)) - g.Icon:SetInside() - - g.Tab = CreateFrame('Frame', nil, g) - g.Tab:Point('TOPLEFT', g.IconSlot, 'TOPRIGHT', 1, 0) - g.Tab:Point('BOTTOMRIGHT', g, 'TOPRIGHT', -SPACING, -(SPACING + INFO_TAB_SIZE)) - g.Tab:SetBackdrop({ + f.IconSlot:Point('TOPLEFT', f, SPACING, -SPACING) + f.Icon = f.IconSlot:CreateTexture(nil, 'OVERLAY') + f.Icon:SetTexCoord(unpack(E.TexCoords)) + f.Icon:SetInside() + + f.Tab = CreateFrame('Frame', nil, f) + f.Tab:Point('TOPLEFT', f.IconSlot, 'TOPRIGHT', 1, 0) + f.Tab:Point('BOTTOMRIGHT', f, 'TOPRIGHT', -SPACING, -(SPACING + INFO_TAB_SIZE)) + f.Tab:SetBackdrop({ bgFile = E.media.normTex, edgeFile = E.media.blankTex, tile = false, tileSize = 0, edgeSize = E.mult, insets = { left = 0, right = 0, top = 0, bottom = 0} }) - g.Tooltip = CreateFrame('Button', nil, g) - g.Tooltip:Point('TOPLEFT', g.Icon) - g.Tooltip:Point('BOTTOMRIGHT', g.Tab) - g.Tooltip:SetFrameLevel(CoreFrameLevel + 4) - g.Tooltip:SetScript('OnClick', KI.Category_OnClick) + f.Tooltip = CreateFrame('Button', nil, f) + f.Tooltip:Point('TOPLEFT', f.Icon) + f.Tooltip:Point('BOTTOMRIGHT', f.Tab) + f.Tooltip:SetFrameLevel(CoreFrameLevel + 4) + f.Tooltip:SetScript('OnClick', KI.Category_OnClick) - C.Toolkit.TextSetting(g.Tab, CategoryType, { ['FontSize'] = 10 }, 'LEFT', 6, 1) + C.Toolkit.TextSetting(f.Tab, CategoryType, { ['FontSize'] = 10 }, 'LEFT', 6, 1) - g.Page = CreateFrame('Frame', nil, g) - g:SetScrollChild(g.Page) - g.Page:SetFrameLevel(CoreFrameLevel + 2) - g.Page:Point('TOPLEFT', g.Icon, 'BOTTOMLEFT', 0, -SPACING) - g.Page:Point('BOTTOMRIGHT', g, -SPACING, SPACING) + f.Page = CreateFrame('Frame', nil, f) + f:SetScrollChild(f.Page) + f.Page:SetFrameLevel(CoreFrameLevel + 2) + f.Page:Point('TOPLEFT', f.Icon, 'BOTTOMLEFT', 0, -SPACING) + f.Page:Point('BOTTOMRIGHT', f, -SPACING, SPACING) - self.Info[CategoryType] = g + self.Info[CategoryType] = f end - do --Profession Part + do -- Profession Part self.Info.Profession.CategoryHeight = INFO_TAB_SIZE + 34 + SPACING * 3 self.Info.Profession.Icon:SetTexture(GetSpellTexture(110396)) @@ -807,8 +811,8 @@ function KI:CreateInspectFrame() self.Spec['Spec'..i].Icon = CreateFrame('Frame', nil, self.Spec['Spec'..i].Tab) self.Spec['Spec'..i].Icon:Size(27, 26) self.Spec['Spec'..i].Icon:SetBackdrop({ - bgFile = E['media'].blankTex, - edgeFile = E['media'].blankTex, + bgFile = E.media.blankTex, + edgeFile = E.media.blankTex, tile = false, tileSize = 0, edgeSize = E.mult, insets = { left = 0, right = 0, top = 0, bottom = 0} }) @@ -853,7 +857,7 @@ function KI:CreateInspectFrame() }) self.Spec['TalentTier'..i]:SetBackdropColor(.08, .08, .08) self.Spec['TalentTier'..i]:SetBackdropBorderColor(0, 0, 0) - self.Spec['TalentTier'..i]:SetFrameLevel(CoreFrameLevel + 1) + self.Spec['TalentTier'..i]:SetFrameLevel(CoreFrameLevel + 2) self.Spec['TalentTier'..i]:Size(352, TALENT_SLOT_SIZE + SPACING * 2) for k = 1, NUM_TALENT_COLUMNS do @@ -864,7 +868,7 @@ function KI:CreateInspectFrame() tile = false, tileSize = 0, edgeSize = E.mult, insets = { left = 0, right = 0, top = 0, bottom = 0} }) - self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)]:SetFrameLevel(CoreFrameLevel + 2) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)]:SetFrameLevel(CoreFrameLevel + 3) self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)]:Size(114, TALENT_SLOT_SIZE) self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Icon = CreateFrame('Frame', nil, self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)]) self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Icon:Size(20) @@ -882,12 +886,12 @@ function KI:CreateInspectFrame() self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].text:Point('BOTTOMLEFT', self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Icon, 'BOTTOMRIGHT', SPACING, -SPACING) self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].text:Point('RIGHT', -SPACING, 0) - self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].tooltip = CreateFrame('Button', nil, self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)]) - self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].tooltip:SetFrameLevel(CoreFrameLevel + 3) - self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].tooltip:SetInside() - self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].tooltip:SetScript('OnClick', self.OnClick) - self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].tooltip:SetScript('OnEnter', C.CommonScript.OnEnter) - self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].tooltip:SetScript('OnLeave', C.CommonScript.OnLeave) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Tooltip = CreateFrame('Button', nil, self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)]) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Tooltip:SetFrameLevel(CoreFrameLevel + 4) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Tooltip:SetInside() + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Tooltip:SetScript('OnClick', self.OnClick) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Tooltip:SetScript('OnEnter', C.CommonScript.OnEnter) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Tooltip:SetScript('OnLeave', C.CommonScript.OnLeave) end self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + 1)]:Point('RIGHT', self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + 2)], 'LEFT', -2, 0) @@ -1093,8 +1097,10 @@ function KI:CreateInspectFrame() return true end end, TableIndex, true) + print('전송') SendAddonMessage('AISM_Inspect', 'AISM_DataRequestForInspecting:'..Name..'-'..Realm, SendChannel, TableIndex) elseif Unit then + print('직접 살펴보기') KI.InspectUnit(Unit) end end @@ -1146,7 +1152,7 @@ KI.INSPECT_READY = function(InspectedUnitGUID) local CurrentSetItem = {} local Slot, SlotTexture, SlotLink, CheckSpace, colorR, colorG, colorB, tooltipText, TransmogrifiedItem, SetName, SetItemCount, SetItemMax, SetOptionCount for _, SlotName in pairs(C.GearList) do - Slot = f[SlotName] + Slot = KI[SlotName] KI.CurrentInspectData.Gear[SlotName] = {} SlotTexture = GetInventoryItemTexture(UnitID, Slot.ID) @@ -1159,17 +1165,17 @@ KI.INSPECT_READY = function(InspectedUnitGUID) else KI.CurrentInspectData.Gear[SlotName].ItemLink = SlotLink - f.ScanTTForInspecting:ClearLines() + KI.ScanTTForInspecting:ClearLines() for i = 1, 10 do _G['KnightInspectScanTT_ITexture'..i]:SetTexture(nil) end - f.ScanTTForInspecting:SetInventoryItem(UnitID, Slot.ID) + KI.ScanTTForInspecting:SetInventoryItem(UnitID, Slot.ID) TransmogrifiedItem = nil checkSpace = 2 SetOptionCount = 1 - for i = 1, f.ScanTTForInspecting:NumLines() do + for i = 1, KI.ScanTTForInspecting:NumLines() do tooltipText = _G['KnightInspectScanTT_ITextLeft'..i]:GetText() if not TransmogrifiedItem and tooltipText:match(C.TransmogrifiedKey) then @@ -1193,7 +1199,7 @@ KI.INSPECT_READY = function(InspectedUnitGUID) else CurrentSetItem[SetName] = {} - for k = 1, f.ScanTTForInspecting:NumLines() do + for k = 1, KI.ScanTTForInspecting:NumLines() do tooltipText = _G['KnightInspectScanTT_ITextLeft'..(i+k)]:GetText() if tooltipText == ' ' then @@ -1275,6 +1281,7 @@ KI.InspectUnit = function(UnitID) return elseif not UnitIsVisible(UnitID) then + return else UnitID = NotifyInspect(UnitID, true) or UnitID @@ -1346,7 +1353,7 @@ function KI:InspectFrame_DataSetting(DataTable) -- Setting except shirt and tabard for _, slotName in pairs(self.GearUpdated or C.GearList) do if slotName ~= 'ShirtSlot' and slotName ~= 'TabardSlot' then - Slot = f[slotName] + Slot = self[slotName] do --<< Clear Setting >>-- ErrorDetected, TrueItemLevel, IsEnchanted, ItemUpgradeID, ItemTexture, r, g, b = nil, nil, nil, nil, nil, 0, 0, 0 @@ -1485,10 +1492,6 @@ function KI:InspectFrame_DataSetting(DataTable) if ItemUpgradeID == '0' then ItemUpgradeID = nil else - if not C.ItemUpgrade[ItemUpgradeID] then - print('New Upgrade ID |cffceff00['..ItemUpgradeID..']|r : |cffceff00'..(TrueItemLevel - BasicItemLevel)) - end - ItemUpgradeID = TrueItemLevel - BasicItemLevel end end @@ -1536,8 +1539,8 @@ function KI:InspectFrame_DataSetting(DataTable) Slot.SocketWarning.Message = L['Missing Buckle'] Slot.SocketWarning:SetScript('OnClick', function(self) - local itemName, itemLink + if TrueItemLevel < 300 then itemName, itemLink = GetItemInfo(41611) elseif TrueItemLevel < 417 then @@ -1587,7 +1590,7 @@ function KI:InspectFrame_DataSetting(DataTable) end for _, slotName in pairs({ 'ShirtSlot', 'TabardSlot' }) do - Slot = f[slotName] + Slot = self[slotName] ItemRarity, ItemTexture, r, g, b = nil, nil, 0, 0, 0 Slot.Link = DataTable.Gear[slotName].ItemLink @@ -1597,11 +1600,12 @@ function KI:InspectFrame_DataSetting(DataTable) r, g, b = GetItemQualityColor(ItemRarity) end - Slot.Texture:SetTexture(ItemTexture or f[slotName].EmptyTexture) + Slot.Texture:SetTexture(ItemTexture or self[slotName].EmptyTexture) Slot:SetBackdropBorderColor(r, g, b) end self.SetItem = E:CopyTable({}, KI.CurrentInspectData.SetItem) + self.Character.AverageItemLevel:SetText(C.Toolkit.Color_Value(STAT_AVERAGE_ITEM_LEVEL)..' : '..format('%.2f', ItemTotal / ItemCount)) end if needUpdate then @@ -1640,34 +1644,34 @@ function KI:InspectFrame_DataSetting(DataTable) end do --<< Information Page Setting >>-- - if DataTable.guildName then + if DataTable.guildName and DataTable.guildLevel and DataTable.guildNumMembers then self.Info.Guild:Show() - SetSmallGuildTabardTextures(nil, self.Info.Guild.Emblem, self.Info.Guild.BG, self.Info.Guild.Border, DataTable.guildEmblem) self.Info.Guild.Page.Name:SetText('|cff2eb7e4'..DataTable.guildName) - self.Info.Guild.Page.LevelMembers:SetText('|cff77c0ff'..DataTable.guildLevel..'|r '..LEVEL..' / '..format(INSPECT_GUILD_NUM_MEMBERS:gsub('%%d', '%%s'), '|cff77c0ff'..DataTable.guildNumMembers..'|r')) + self.Info.Guild.Page.LevelMembers:SetText('|cff77c0ff'..DataTable.guildLevel..'|r '..LEVEL..(DataTable.guildNumMembers > 0 and ' / '..format(INSPECT_GUILD_NUM_MEMBERS:gsub('%%d', '%%s'), '|cff77c0ff'..DataTable.guildNumMembers..'|r ') or '')) + SetSmallGuildTabardTextures('player', self.Info.Guild.Emblem, self.Info.Guild.BG, self.Info.Guild.Border, DataTable.guildEmblem) else self.Info.Guild:Hide() end end - do --<< Specialization Setting >>-- + do --<< Specialization Page Setting >>-- local SpecGroup, Name, Color, Texture, SpecRole if DataTable.Specialization.ActiveSpec then SpecGroup = DataTable.Specialization.ActiveSpec for i = 2, MAX_TALENT_GROUPS do - f.Spec['Spec'..i]:Show() + self.Spec['Spec'..i]:Show() end else SpecGroup = 1 for i = 2, MAX_TALENT_GROUPS do - f.Spec['Spec'..i]:Hide() + self.Spec['Spec'..i]:Hide() end end - f.SpecIcon:SetTexture('Interface\\ICONS\\INV_Misc_QuestionMark.blp') + self.SpecIcon:SetTexture('Interface\\ICONS\\INV_Misc_QuestionMark.blp') for i = 1, MAX_TALENT_GROUPS do Color = '|cff808080' @@ -1681,7 +1685,7 @@ function KI:InspectFrame_DataSetting(DataTable) if i == SpecGroup then Color = C.ClassRole[DataTable.Class][Name].Color - f.SpecIcon:SetTexture(Texture) + self.SpecIcon:SetTexture(Texture) end Name = (SpecRole == 'Tank' and '|TInterface\\AddOns\\ElvUI\\media\\textures\\tank.tga:16:16:-3:0|t' or SpecRole == 'Healer' and '|TInterface\\AddOns\\ElvUI\\media\\textures\\healer.tga:16:16:-3:-1|t' or '|TInterface\\AddOns\\ElvUI\\media\\textures\\dps.tga:16:16:-2:-1|t')..Name @@ -1693,52 +1697,52 @@ function KI:InspectFrame_DataSetting(DataTable) Name = '|cff808080'..L['No Specialization'] end - f.Spec['Spec'..i].Tab.text:SetText(Color..Name) - f.Spec['Spec'..i].Texture:SetTexture(Texture) - f.Spec['Spec'..i].Texture:SetDesaturated(i ~= SpecGroup) + self.Spec['Spec'..i].Tab.text:SetText(Color..Name) + self.Spec['Spec'..i].Texture:SetTexture(Texture) + self.Spec['Spec'..i].Texture:SetDesaturated(i ~= SpecGroup) end -- Talents for i = 1, NUM_TALENT_COLUMNS * MAX_NUM_TALENT_TIERS do Name, Texture = GetTalentInfo(i, true, nil, nil, DataTable.ClassID) - f.Spec['Talent'..i].Icon.Texture:SetTexture(Texture) - f.Spec['Talent'..i].text:SetText(Name) - f.Spec['Talent'..i].tooltip.Link = GetTalentLink(i, true, DataTable.ClassID) + self.Spec['Talent'..i].Icon.Texture:SetTexture(Texture) + self.Spec['Talent'..i].text:SetText(Name) + self.Spec['Talent'..i].Tooltip.Link = GetTalentLink(i, true, DataTable.ClassID) end end do --<< Model and Frame Setting When InspectUnit Changed >>-- if DataTable.UnitID and UnitIsVisible(DataTable.UnitID) then - f.Model:SetUnit(DataTable.UnitID) + self.Model:SetUnit(DataTable.UnitID) else - f.Model:SetCustomRace(self.ModelList[DataTable.RaceID].RaceID, DataTable.GenderID - 2) - f.Model:TryOn(HeadSlotItem) - f.Model:TryOn(BackSlotItem) - f.Model:UndressSlot(self.HeadSlot.ID) - f.Model:UndressSlot(self.BackSlot.ID) - f.Model:Undress() + self.Model:SetCustomRace(self.ModelList[DataTable.RaceID].RaceID, DataTable.GenderID - 2) + self.Model:TryOn(HeadSlotItem) + self.Model:TryOn(BackSlotItem) + self.Model:UndressSlot(self.HeadSlot.ID) + self.Model:UndressSlot(self.BackSlot.ID) + self.Model:Undress() for _, slotName in pairs(C.GearList) do if DataTable.Gear[slotName].ItemLink then if type(DataTable.Gear[slotName].Transmogrify) == 'number' then - f.Model:TryOn(DataTable.Gear[slotName].Transmogrify) - else - f.Model:TryOn(DataTable.Gear[slotName].ItemLink) + self.Model:TryOn(DataTable.Gear[slotName].Transmogrify) + elseif not (DataTable.Gear[slotName].Transmogrify and DataTable.Gear[slotName].Transmogrify == 'NotDisplayed') then + self.Model:TryOn(DataTable.Gear[slotName].ItemLink) end end end end if not (self.LastDataSetting and self.LastDataSetting == DataTable.Name..(DataTable.Realm and '-'..DataTable.Realm or '')) then - f.Model:SetPosition(self.ModelList[DataTable.RaceID][DataTable.GenderID] and self.ModelList[DataTable.RaceID][DataTable.GenderID].z or 0, self.ModelList[DataTable.RaceID][DataTable.GenderID] and self.ModelList[DataTable.RaceID][DataTable.GenderID].x or 0, self.ModelList[DataTable.RaceID][DataTable.GenderID] and self.ModelList[DataTable.RaceID][DataTable.GenderID].y or 0) - f.Model:SetFacing(-5.67) - f.Model:SetPortraitZoom(1) - f.Model:SetPortraitZoom(0) + self.Model:SetPosition(self.ModelList[DataTable.RaceID][DataTable.GenderID] and self.ModelList[DataTable.RaceID][DataTable.GenderID].z or 0, self.ModelList[DataTable.RaceID][DataTable.GenderID] and self.ModelList[DataTable.RaceID][DataTable.GenderID].x or 0, self.ModelList[DataTable.RaceID][DataTable.GenderID] and self.ModelList[DataTable.RaceID][DataTable.GenderID].y or 0) + self.Model:SetFacing(-5.67) + self.Model:SetPortraitZoom(1) + self.Model:SetPortraitZoom(0) self:ChangePage('CharacterButton') - f.ClassIconSlot:SetBackdropBorderColor(RAID_CLASS_COLORS[DataTable.Class].r, RAID_CLASS_COLORS[DataTable.Class].g, RAID_CLASS_COLORS[DataTable.Class].b) - f.SpecIconSlot:SetBackdropBorderColor(RAID_CLASS_COLORS[DataTable.Class].r, RAID_CLASS_COLORS[DataTable.Class].g, RAID_CLASS_COLORS[DataTable.Class].b) + self.ClassIconSlot:SetBackdropBorderColor(RAID_CLASS_COLORS[DataTable.Class].r, RAID_CLASS_COLORS[DataTable.Class].g, RAID_CLASS_COLORS[DataTable.Class].b) + self.SpecIconSlot:SetBackdropBorderColor(RAID_CLASS_COLORS[DataTable.Class].r, RAID_CLASS_COLORS[DataTable.Class].g, RAID_CLASS_COLORS[DataTable.Class].b) self:ToggleSpecializationTab(DataTable.Specialization.ActiveSpec or 1, DataTable) elseif not (self.LastActiveSpec and self.LastActiveSpec == (DataTable.Specialization.ActiveSpec or 1)) then @@ -1755,47 +1759,47 @@ function KI:ToggleSpecializationTab(Group, DataTable) for i = 1, MAX_TALENT_GROUPS do if i == Group then - f.Spec['Spec'..i].BottomLeftBorder:Show() - f.Spec['Spec'..i].BottomRightBorder:Show() - f.Spec['Spec'..i].Tab:SetFrameLevel(CoreFrameLevel + 3) - f.Spec['Spec'..i].Tab.text:Point('BOTTOMRIGHT', 0, -10) + self.Spec['Spec'..i].BottomLeftBorder:Show() + self.Spec['Spec'..i].BottomRightBorder:Show() + self.Spec['Spec'..i].Tab:SetFrameLevel(CoreFrameLevel + 3) + self.Spec['Spec'..i].Tab.text:Point('BOTTOMRIGHT', 0, -10) else - f.Spec['Spec'..i].BottomLeftBorder:Hide() - f.Spec['Spec'..i].BottomRightBorder:Hide() - f.Spec['Spec'..i].Tab:SetFrameLevel(CoreFrameLevel + 2) - f.Spec['Spec'..i].Tab.text:Point('BOTTOMRIGHT', 0, 0) + self.Spec['Spec'..i].BottomLeftBorder:Hide() + self.Spec['Spec'..i].BottomRightBorder:Hide() + self.Spec['Spec'..i].Tab:SetFrameLevel(CoreFrameLevel + 2) + self.Spec['Spec'..i].Tab.text:Point('BOTTOMRIGHT', 0, 0) end end if Group == self.LastActiveSpec then r, g, b = RAID_CLASS_COLORS[DataTable.Class].r, RAID_CLASS_COLORS[DataTable.Class].g, RAID_CLASS_COLORS[DataTable.Class].b else - r, g, b = 0.4, 0.4, 0.4 + r, g, b = .4, .4, .4 end - f.Spec.BottomBorder:SetTexture(r, g, b) - f.Spec.LeftBorder:SetTexture(r, g, b) - f.Spec.RightBorder:SetTexture(r, g, b) + self.Spec.BottomBorder:SetTexture(r, g, b) + self.Spec.LeftBorder:SetTexture(r, g, b) + self.Spec.RightBorder:SetTexture(r, g, b) local LevelTable = CLASS_TALENT_LEVELS[DataTable.Class] or CLASS_TALENT_LEVELS.DEFAULT for i = 1, MAX_NUM_TALENT_TIERS do for k = 1, NUM_TALENT_COLUMNS do if DataTable.Specialization[Group]['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)] then - f.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)]:SetBackdropColor(r, g, b, .3) - f.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)]:SetBackdropBorderColor(r, g, b) - f.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Icon:SetBackdropBorderColor(r, g, b) - f.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Icon.Texture:SetDesaturated(0) - f.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].text:SetTextColor(1, 1, 1) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)]:SetBackdropColor(r, g, b, .3) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)]:SetBackdropBorderColor(r, g, b) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Icon:SetBackdropBorderColor(r, g, b) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Icon.Texture:SetDesaturated(0) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].text:SetTextColor(1, 1, 1) else - f.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)]:SetBackdropColor(.1, .1, .1) - f.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)]:SetBackdropBorderColor(0, 0, 0) - f.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Icon:SetBackdropBorderColor(0, 0, 0) - f.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Icon.Texture:SetDesaturated(1) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)]:SetBackdropColor(.1, .1, .1) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)]:SetBackdropBorderColor(0, 0, 0) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Icon:SetBackdropBorderColor(0, 0, 0) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].Icon.Texture:SetDesaturated(1) if DataTable.Level < LevelTable[i] then - f.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].text:SetTextColor(.7, .3, .3) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].text:SetTextColor(.7, .3, .3) else - f.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].text:SetTextColor(.5, .5, .5) + self.Spec['Talent'..((i - 1) * NUM_TALENT_COLUMNS + k)].text:SetTextColor(.5, .5, .5) end end end @@ -1805,23 +1809,23 @@ function KI:ToggleSpecializationTab(Group, DataTable) for i = 1, NUM_GLYPH_SLOTS do Name, _, Texture = GetSpellInfo(DataTable.Glyph[Group]['Glyph'..i..'SpellID']) - f.Spec['Glyph'..i].text:SetJustifyH('LEFT') - f.Spec['Glyph'..i].text:SetText(Name) - f.Spec['Glyph'..i].Icon.Texture:SetTexture(Texture) - f.Spec['Glyph'..i].Tooltip.Link = DataTable.Glyph[Group]['Glyph'..i..'ID'] ~= 0 and GetGlyphLinkByID(DataTable.Glyph[Group]['Glyph'..i..'ID']) + self.Spec['Glyph'..i].text:SetJustifyH('LEFT') + self.Spec['Glyph'..i].text:SetText(Name) + self.Spec['Glyph'..i].Icon.Texture:SetTexture(Texture) + self.Spec['Glyph'..i].Tooltip.Link = DataTable.Glyph[Group]['Glyph'..i..'ID'] ~= 0 and GetGlyphLinkByID(DataTable.Glyph[Group]['Glyph'..i..'ID']) if DataTable.Glyph[Group]['Glyph'..i..'SpellID'] ~= 0 then - f.Spec['Glyph'..i]:SetBackdropColor(r, g, b, .3) - f.Spec['Glyph'..i]:SetBackdropBorderColor(r, g, b) - f.Spec['Glyph'..i].Icon:SetBackdropBorderColor(r, g, b) + self.Spec['Glyph'..i]:SetBackdropColor(r, g, b, .3) + self.Spec['Glyph'..i]:SetBackdropBorderColor(r, g, b) + self.Spec['Glyph'..i].Icon:SetBackdropBorderColor(r, g, b) else - f.Spec['Glyph'..i]:SetBackdropColor(.1, .1, .1) - f.Spec['Glyph'..i]:SetBackdropBorderColor(0, 0, 0) - f.Spec['Glyph'..i].Icon:SetBackdropBorderColor(0, 0, 0) + self.Spec['Glyph'..i]:SetBackdropColor(.1, .1, .1) + self.Spec['Glyph'..i]:SetBackdropBorderColor(0, 0, 0) + self.Spec['Glyph'..i].Icon:SetBackdropBorderColor(0, 0, 0) - if f.Spec['Glyph'..i].NeedLevel > DataTable.Level then - f.Spec['Glyph'..i].text:SetJustifyH('CENTER') - f.Spec['Glyph'..i].text:SetText(E:RGBToHex(.7, .3, .3)..f.Spec['Glyph'..i].NeedLevel..' '..LEVEL) + if self.Spec['Glyph'..i].NeedLevel > DataTable.Level then + self.Spec['Glyph'..i].text:SetJustifyH('CENTER') + self.Spec['Glyph'..i].text:SetText(E:RGBToHex(.7, .3, .3)..self.Spec['Glyph'..i].NeedLevel..' '..LEVEL) end end end @@ -1833,68 +1837,43 @@ function KI:ToggleSpecializationTab(Group, DataTable) r, g, b = .3, .3, .3 end - f.Spec['Spec'..i].TopBorder:SetTexture(r, g, b) - f.Spec['Spec'..i].LeftBorder:SetTexture(r, g, b) - f.Spec['Spec'..i].RightBorder:SetTexture(r, g, b) - f.Spec['Spec'..i].BottomLeftBorder:SetTexture(r, g, b) - f.Spec['Spec'..i].BottomRightBorder:SetTexture(r, g, b) - f.Spec['Spec'..i].Icon:SetBackdropBorderColor(r, g, b) + self.Spec['Spec'..i].TopBorder:SetTexture(r, g, b) + self.Spec['Spec'..i].LeftBorder:SetTexture(r, g, b) + self.Spec['Spec'..i].RightBorder:SetTexture(r, g, b) + self.Spec['Spec'..i].BottomLeftBorder:SetTexture(r, g, b) + self.Spec['Spec'..i].BottomRightBorder:SetTexture(r, g, b) + self.Spec['Spec'..i].Icon:SetBackdropBorderColor(r, g, b) end end UnitPopupButtons.KnightInspect = { ['text'] = L['KnightInspect'], ['dist'] = 0, } -function KI:ToggleKnightInspect() --- if E.db.KnightFrame_Armory.Enable and not self.Activate then - if not KI.Activate then - Default_NotifyInspect = _G['NotifyInspect'] - Default_InspectUnit = _G['InspectUnit'] - - if KI.CreateInspectFrame then - KI:CreateInspectFrame(KnightInspect) - end - - _G['NotifyInspect'] = ENI.NotifyInspect or _G['NotifyInspect'] - _G['InspectUnit'] = KI.InspectUnit - - tinsert(UnitPopupMenus.FRIEND, 5, 'KnightInspect') - tinsert(UnitPopupMenus.GUILD, 5, 'KnightInspect') - tinsert(UnitPopupMenus.RAID, 12, 'KnightInspect') - tinsert(UnitPopupMenus.FOCUS, 5, 'KnightInspect') - for _, GroupType in pairs({ 'PLAYER', 'PARTY'}) do - for Index, MenuType in pairs(UnitPopupMenus[GroupType]) do - if MenuType == 'INSPECT' then - UnitPopupMenus[GroupType][Index] = 'KnightInspect' - break - end - end - end - - KI.Activate = true - elseif KI.Activate then - _G['NotifyInspect'] = Default_NotifyInspect - _G['InspectUnit'] = Default_InspectUnit - Default_NotifyInspect = nil - Default_InspectUnit = nil - - for _, GroupType in pairs({ 'PLAYER', 'FOCUS', 'PARTY', 'RAID', 'FRIEND', 'GUILD' }) do - for Index, MenuType in pairs(UnitPopupMenus[GroupType]) do - if MenuType == 'KnightInspect' then - if GroupType == 'PLAYER' or GroupType == 'Party' then - UnitPopupMenus[GroupType][Index] = 'INSPECT' - else - tremove(UnitPopupMenus[GroupType], Index) - end - break - end +function IFO:Initialize() + -- if not E.private.sle.Armory.Inspect.Enable then return end + + Default_NotifyInspect = _G['NotifyInspect'] + Default_InspectUnit = _G['InspectUnit'] + + if KI.CreateInspectFrame then + KI:CreateInspectFrame() + end + + _G['NotifyInspect'] = ENI.NotifyInspect or _G['NotifyInspect'] + _G['InspectUnit'] = KI.InspectUnit + + tinsert(UnitPopupMenus.FRIEND, 5, 'KnightInspect') + tinsert(UnitPopupMenus.GUILD, 5, 'KnightInspect') + tinsert(UnitPopupMenus.RAID, 12, 'KnightInspect') + tinsert(UnitPopupMenus.FOCUS, 5, 'KnightInspect') + for _, GroupType in pairs({ 'PLAYER', 'PARTY' }) do + for Index, MenuType in pairs(UnitPopupMenus[GroupType]) do + if MenuType == 'INSPECT' then + UnitPopupMenus[GroupType][Index] = 'KnightInspect' + break end end - - KI.Activate = nil end + + KI.Activate = true end - -function KI:Initialize() - KI:ToggleKnightInspect() -end -E:RegisterModule(KI:GetName()) \ No newline at end of file +E:RegisterModule(IFO:GetName()) \ No newline at end of file -- 1.7.9.5