Quantcast

coloring for instance difficulty text

Darthpred [04-11-15 - 18:02]
coloring for instance difficulty text

still not finished, stuff is commented fo avoid guild group check
Filename
ElvUI_SLE/modules/minimap/instance.lua
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