View Single Post
04-13-19, 06:17 PM   #10
Fizzlemizz
I did that?
 
Fizzlemizz's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Dec 2011
Posts: 1,877
WoW doesn't care if you overwrite (re-use) frame names, you'll just get the first one created using _G["FrameName"] or FrameName but using the local referernce will still differentiate them in your code.

I moved the PLAYER_TARGET_CHANGED event as per SDPhantom's suggestion down to the target frame to make it easier to read/understand ie. the Player frame doesn't now need to have a reference to the Target frame to make the change as it's all done in the Target frame.

Lua Code:
  1. --Player Frame
  2. local fp = CreateFrame("Button", "FarmootPlayerPortrait", UIParent, "SecureUnitButtonTemplate")
  3. fp:SetSize(60, 60)
  4. fp:SetPoint("CENTER", -40, -350)
  5. fp:SetAttribute("unit", "player")
  6. RegisterUnitWatch(fp)
  7. fp:SetAttribute("toggleForVehicle", true)
  8. fp:RegisterForClicks("AnyUp")
  9. fp:SetAttribute("*type1", "target")
  10. fp:SetAttribute("*type2", "togglemenu")
  11. fp:SetAttribute("*type3", "assist")
  12. fp.Texture = fp:CreateTexture("$parent_Texture", "BACKGROUND")
  13. fp.Texture:SetAllPoints()
  14. SetPortraitTexture(fp.Texture, "player")
  15. fp.Border = fp:CreateTexture("$parent_Border", "BORDER")
  16. fp.Border:SetPoint("TOPLEFT", -6, 4)
  17. fp.Border:SetPoint("BOTTOMRIGHT", 6, -10)
  18. fp.Border:SetTexture("Interface/PLAYERFRAME/UI-PlayerFrame-Deathknight-Ring")
  19. fp.Border:SetVertexColor(1, 1, 0, 1)
  20. fp:RegisterUnitEvent("UNIT_PORTRAIT_UPDATE", "player")
  21. fp:SetScript("OnEvent", function(self) SetPortraitTexture(self.Texture, "player") end)
  22.  
  23. --Target Frame
  24. local ft = CreateFrame("Button", "FarmootTargetPortrait", UIParent, "SecureUnitButtonTemplate")
  25. fp.Target = ft -- based on suggestion of Fizzlemizz
  26. ft:SetSize(60, 60)
  27. ft:SetPoint("CENTER", 100, -350)
  28. ft:SetAttribute("unit", "target")
  29. RegisterUnitWatch(ft)
  30. ft:SetAttribute("toggleForVehicle", true)
  31. ft:RegisterForClicks("AnyUp")
  32. ft:SetAttribute("*type1", "target")
  33. ft:SetAttribute("*type2", "togglemenu")
  34. ft:SetAttribute("*type3", "assist")
  35. ft.Texture = ft:CreateTexture("$parent_Texture", "BACKGROUND")
  36. ft.Texture:SetAllPoints()
  37. ft.Border = ft:CreateTexture("$parent_Border", "BORDER")
  38. ft.Border:SetPoint("TOPLEFT", -6, 4)
  39. ft.Border:SetPoint("BOTTOMRIGHT", 6, -10)
  40. ft.Border:SetTexture("Interface/PLAYERFRAME/UI-PlayerFrame-Deathknight-Ring")
  41. ft.Border:SetVertexColor(1, 1, 0, 1)
  42. ft:RegisterUnitEvent("UNIT_PORTRAIT_UPDATE", "target")
  43. ft:RegisterEvent("PLAYER_TARGET_CHANGED") -- based on suggestion of Fizzlemizz
  44. ft:SetScript("OnEvent", function(self) SetPortraitTexture(self.Texture, "target")  end)
__________________
Fizzlemizz
Maintainer of Discord Unit Frames and Discord Art.
Author of FauxMazzle, FauxMazzleHUD and Move Pad Plus.

Last edited by Fizzlemizz : 04-13-19 at 06:54 PM.
  Reply With Quote