diff --git a/ElvUI_SLE/modules/minimap/instance.lua b/ElvUI_SLE/modules/minimap/instance.lua index 79ef1da..99c96da 100644 --- a/ElvUI_SLE/modules/minimap/instance.lua +++ b/ElvUI_SLE/modules/minimap/instance.lua @@ -5,13 +5,39 @@ local sub = string.sub local IsInInstance, IsInGuild = IsInInstance, IsInGuild local f -local function CreateText() +local Difficulties = { + [1] = 'normal', --5ppl normal + [2] = 'heroic', --5ppl heroic + [3] = 'normal', --10ppl raid + [4] = 'normal', --25ppl raid + [5] = 'heroic', --10ppl heroic raid + [6] = 'heroic', --25ppl heroic raid + [7] = 'lfr', --25ppl LFR + [8] = 'challenge', --5ppl challenge + [9] = 'normal', --40ppl raid + [11] = 'heroic', --Heroic scenario + [12] = 'normal', --Normal scenario + [14] = 'normal', --10-30ppl normal + [15] = 'heroic', --13-30ppl heroic + [16] = 'mythic', --20ppl mythic + [17] = 'lfr', --10-30 LFR + +} + +function I:CreateText() f = CreateFrame("Frame", "MiniMapDifFrame", Minimap) f:Size(50, 20) -- f:Point("CENTER", UIParent) f.text = f:CreateFontString(nil, 'OVERLAY') - f.text:SetFont(E["media"].normFont, 12) f.text:SetPoint("CENTER", f, "CENTER") + f.icon = f:CreateFontString(nil, 'OVERLAY') + f.icon:SetPoint("LEFT", f.text, "RIGHT", 4, 0) + self:SetFonts() +end + +function I:SetFonts() + f.text:SetFont(E["media"].normFont, 12) + f.icon:SetFont(E["media"].normFont, 12) end @@ -34,7 +60,8 @@ local function GuildEmblem() if GuildFrameTabardEmblem then char.guildTexCoord = {GuildFrameTabardEmblem:GetTexCoord()} end - if IsInGuild() and char.guildTexCoord then + -- if IsInGuild() and char.guildTexCoord then + if char.guildTexCoord then return "|TInterface\\GuildFrame\\GuildEmblemsLG_01:24:24:-4:1:32:32:"..(char.guildTexCoord[1]*32)..":"..(char.guildTexCoord[7]*32)..":"..(char.guildTexCoord[2]*32)..":"..(char.guildTexCoord[8]*32).."|t" else return "" @@ -53,29 +80,43 @@ function I:UpdateFrame() f:Point("TOPLEFT", Minimap, "TOPLEFT", db.xoffset, db.yoffset) if db.enable then f.text:Show() + f.icon:Show() else f.text:Hide() + f.icon:Hide() end end -local function GenerateText(self, event, guild) +function I:GetColor(dif) + if dif and Difficulties[dif] then + local color = E.db.sle.minimap.instance.colors[Difficulties[dif]] + return color.r*255, color.g*255, color.b*255 + else + return 255, 255, 255 + end +end + +function I:GenerateText(event, guild) if not InstanceCheck() then f.text:SetText("") + f.icon:SetText("") else - local _, _, _, difficultyName, _, _, _, _, instanceGroupSize = GetInstanceInfo() + local _, _, difficulty, difficultyName, _, _, _, _, instanceGroupSize = GetInstanceInfo() difficultyName = sub(difficultyName, 1 , 2) - f.text:SetText(instanceGroupSize.." ("..difficultyName..")") - if guild then + local r, g, b = I:GetColor(difficulty) + f.text:SetFormattedText(instanceGroupSize.." |cff%02x%02x%02x%s|r", r, g, b, difficultyName) + -- if guild then local logo = GuildEmblem() - f.text:SetText(instanceGroupSize.." ("..difficultyName..")"..logo) - end + -- f.text:SetText(instanceGroupSize.." "..difficultyName.." "..logo) + f.icon:SetText(logo) + -- end end end function I:Initialize() - CreateText() + self:CreateText() MiniMapInstanceDifficulty:HookScript("OnShow", function(self) if not E.db.sle.minimap.instance.flag then self:Hide() end end) - self:RegisterEvent("PLAYER_ENTERING_WORLD", GenerateText) - self:RegisterEvent("GUILD_PARTY_STATE_UPDATED", GenerateText) - I:UpdateFrame() + self:RegisterEvent("PLAYER_ENTERING_WORLD", "GenerateText") + self:RegisterEvent("GUILD_PARTY_STATE_UPDATED", "GenerateText") + self:UpdateFrame() end \ No newline at end of file