View Single Post
03-10-24, 06:05 PM   #1
Xrystal
nUI Maintainer
 
Xrystal's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Feb 2006
Posts: 5,937
Setting Class Icon via SetAtlas and GetClassAtlas doesn't seem to work for me

As the title says.

I've been trying to create a custom unit frame piece by piece ( for reasons - have you seen nUI's archaic code? rofl ) and have stumbled on the portrait part.

Based on Blizzards code here : https://github.com/Gethe/wow-ui-sour...Frame.lua#L166

I have a simple frame with a texture which accepts the SetPortraitTexture image quite fine.
However, when I toggle on 'ReplaceMyFramePortrait' interface option and use the following code to use a different image it doesn't work.

My first attempt was this, which correctly retrieved the value from the GetCVar function and the classIconAtlas is set to classicon-WARLOCK which I can assume is correct as that is Blizzards function.
Now, the Blizzard PlayerFrame correctly makes the change, however, mine does not.
Lua Code:
  1. if useClassIcon == "1" then
  2.         local _, class = UnitClass(unitFrame.unit)        
  3.         if class then
  4.             local classIconAtlas = GetClassAtlas(class)
  5.             if classIconAtlas then
  6.                 unitFrame.Portrait.Icon:SetAtlas(classIconAtlas)
  7.             end
  8.         end
  9. end
  10. SetPortraitTexture(unitFrame.Portrait.Icon, "player",false)

So, I thought I would try a different route, as I can see from https://github.com/Gethe/wow-ui-text...ree/live/ICONS that the class icons individual files still exist.
Now my test character was a warlock and the file for her comes up as ICONS\ClassIcon_Warlock.png so I tried the following code. And it worked.

Lua Code:
  1. if useClassIcon == "1" then
  2.         local _, class = UnitClass(unitFrame.unit)        
  3.         if class then
  4.             unitFrame.Portrait.Icon:SetTexture("Interface\\ICONS\\ClassIcon_" .. class)
  5.         end
  6.     else
  7.         SetPortraitTexture(unitFrame.Portrait.Icon, "player",false)
  8.     end

So, the question is, does anyone know if there is some special setup for a texture to have to make atlas functions work ? Blizzard seems to be using them more nowadays so thought I better get to figuring them out rofl.

Thanks in advance.
__________________


Characters:
Gwynedda - 70 - Demon Warlock
Galaviel - 65 - Resto Druid
Gamaliel - 61 - Disc Priest
Gwynytha - 60 - Survival Hunter
Lienae - 60 - Resto Shaman
Plus several others below level 60

Info Panel IDs : http://www.wowinterface.com/forums/s...818#post136818
  Reply With Quote