Advertisement
Guest User

Untitled

a guest
Jul 26th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.28 KB | None | 0 0
  1. -- Standalone Castbar for Tukui by Krevlorne @ EU-Ulduar
  2. -- Credits to Tukz, Syne, Elv22, Sweeper and all other great people of the Tukui community.
  3.  
  4. local T, C, L = unpack(Tukui) -- Import: T - functions, constants, variables; C - config; L - locales
  5.  
  6. if ( TukuiUF ~= true and ( C == nil or C["unitframes"] == nil or not C["unitframes"]["enable"] ) ) then return; end
  7.  
  8. if (C["unitframes"].unitcastbar ~= true) then return; end
  9.  
  10. local addon, ns=...
  11. config = ns.config
  12.  
  13. local function placeCastbar(unit)
  14. local font1 = C["media"].uffont
  15. local castbar = nil
  16. local castbarpanel = nil
  17.  
  18. if (unit == "player") then
  19. castbar = TukuiPlayerCastBar
  20. elseif (unit == "target") then
  21. castbar = TukuiTargetCastBar
  22. elseif (unit == "focus") then
  23. castbar = TukuiFocusCastBar
  24. elseif (unit == "focustarget") then
  25. castbar = TukuiFocusTargetCastBar
  26. end
  27.  
  28. local castbarpanel = CreateFrame("Frame", castbar:GetName().."_Panel", castbar)
  29. castbarpanel:CreateShadow("Default")
  30. local anchor = CreateFrame("Button", castbar:GetName().."_PanelAnchor", UIParent)
  31. anchor:SetTemplate("Default")
  32. anchor:SetBackdropBorderColor(1, 0, 0, 1)
  33. anchor:SetMovable(true)
  34. anchor.text = T.SetFontString(anchor, font1, 12)
  35. anchor.text:SetPoint("CENTER")
  36. anchor.text:SetText(castbar:GetName())
  37. anchor.text.Show = function() anchor:Show() end
  38. anchor.text.Hide = function() anchor:Hide() end
  39. anchor:Hide()
  40.  
  41. if unit == "player" then
  42. anchor:SetSize(config["player"]["width"], config["player"]["height"])
  43. anchor:SetPoint("CENTER", UIParent, "CENTER", 0, -300)
  44. castbarpanel:CreatePanel("Default", config["player"]["width"], config["player"]["height"], "CENTER", anchor, "CENTER", 0, 0)
  45. elseif (unit == "target") then
  46. anchor:SetSize(config["target"]["width"], config["target"]["height"])
  47. anchor:SetPoint("CENTER", UIParent, "CENTER", 0, -150)
  48. castbarpanel:CreatePanel("Default", config["target"]["width"], config["target"]["height"], "CENTER", anchor, "CENTER", 0, 0)
  49. elseif (unit == "focus") then
  50. anchor:SetSize(config["focus"]["width"], config["focus"]["height"])
  51. anchor:SetPoint("CENTER", UIParent, "CENTER", 0, 250)
  52. castbarpanel:CreatePanel("Default", config["focus"]["width"], config["focus"]["height"], "CENTER", anchor, "CENTER", 0, 0)
  53. elseif (unit == "focustarget") then
  54. anchor:SetSize(config["focustarget"]["width"], config["focustarget"]["height"])
  55. anchor:SetPoint("CENTER", UIParent, "CENTER", 0, 210)
  56. castbarpanel:CreatePanel("Default", config["focustarget"]["width"], config["focustarget"]["height"], "CENTER", anchor, "CENTER", 0, 0)
  57. end
  58.  
  59. castbar:ClearAllPoints()
  60. castbar:Point("TOPLEFT", castbarpanel, 2, -2)
  61. castbar:Point("BOTTOMRIGHT", castbarpanel, -2, 2)
  62.  
  63. castbar.time = TukuiDB.SetFontString(castbar, font1, 12)
  64. castbar.time:Point("RIGHT", castbarpanel, "RIGHT", -4, 0)
  65. castbar.time:SetTextColor(0.84, 0.75, 0.65)
  66. castbar.time:SetJustifyH("RIGHT")
  67.  
  68. castbar.Text = TukuiDB.SetFontString(castbar, font1, 12)
  69. castbar.Text:Point("LEFT", castbarpanel, "LEFT", 4, 0)
  70. castbar.Text:SetTextColor(0.84, 0.75, 0.65)
  71.  
  72. if C["unitframes"].cbicons == true then
  73. if unit == "player" then
  74. castbar.button:ClearAllPoints()
  75. castbar.button:Point("RIGHT", castbar, "LEFT", -10, 0)
  76. elseif unit == "target" then
  77. castbar.button:ClearAllPoints()
  78. castbar.button:Point("LEFT", castbar, "RIGHT", 10, 0)
  79. elseif unit == "focus" then
  80. castbar.button:ClearAllPoints()
  81. castbar.button:Point("BOTTOM", castbar, "TOP", 0, 10)
  82. castbar.button:Size(50)
  83. castbar.button:CreateShadow("Default")
  84.  
  85. castbar.icon:Point("TOPLEFT", castbar.button, 2, -2)
  86. castbar.icon:Point("BOTTOMRIGHT", castbar.button, -2, 2)
  87. castbar.icon:SetTexCoord(0.08, 0.92, 0.08, .92)
  88. elseif unit == "focustarget" then
  89. castbar.button:Size(26)
  90. castbar.button:CreateShadow("Default")
  91. castbar.button:Point("LEFT", castbar, "RIGHT", 10, 0)
  92. end
  93. end
  94.  
  95. -- cast bar latency
  96. local normTex = C["media"].normTex;
  97. if C["unitframes"].cblatency == true and (unit == "player" or unit == "target") then
  98. castbar.safezone = castbar:CreateTexture(nil, "ARTWORK")
  99. castbar.safezone:SetTexture(normTex)
  100. castbar.safezone:SetVertexColor(0.69, 0.31, 0.31, 0.75)
  101. castbar.SafeZone = castbar.safezone
  102. end
  103.  
  104. castbar.Castbar = castbar
  105. castbar.Castbar.Time = castbar.time
  106. castbar.Castbar.Icon = castbar.icon
  107. end
  108.  
  109.  
  110. if (config.separateplayer) then
  111. placeCastbar("player")
  112. table.insert(T.MoverFrames, TukuiPlayerCastBar_PanelAnchor)
  113. end
  114.  
  115. if (config.separatetarget) then
  116. placeCastbar("target")
  117. table.insert(T.MoverFrames, TukuiTargetCastBar_PanelAnchor)
  118. end
  119.  
  120. if (config.separatefocus) then
  121. placeCastbar("focus")
  122. table.insert(T.MoverFrames, TukuiFocusCastBar_PanelAnchor)
  123. end
  124.  
  125. if (config.separatefocustarget) then
  126. placeCastbar("focustarget")
  127. table.insert(T.MoverFrames, TukuiFocusTargetCastBar_PanelAnchor)
  128. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement