From e3bfc6ab17284d1a62b6a19fcb5b5916040f94ed Mon Sep 17 00:00:00 2001 From: Aleksi Blinnikka Date: Wed, 2 May 2018 19:00:15 +0300 Subject: [PATCH 1/1] Add nameplate functionality if it is needed later, no users now --- OmaTMW/Nameplates.lua | 61 +++++++++++++++++++++++++++++++++++++++++++ OmaTMW/OmaTMW.toc | 1 + 2 files changed, 62 insertions(+) create mode 100644 OmaTMW/Nameplates.lua diff --git a/OmaTMW/Nameplates.lua b/OmaTMW/Nameplates.lua new file mode 100644 index 0000000..2d1c841 --- /dev/null +++ b/OmaTMW/Nameplates.lua @@ -0,0 +1,61 @@ +-- Nameplates.lua +local _; +local next = next; +local GetNamePlateForUnit = C_NamePlate.GetNamePlateForUnit; +local UnitExists = UnitExists; +local UnitAura = UnitAura; + +local main = CreateFrame("Frame", "OmaNameplateAuras"); +main:Hide(); + +local frames = {}; +local unique = 1; +local function createNameplate(parent) + local name = format("OmaPlate%i", unique); + local frame = CreateFrame("Frame", name, parent); + frames[parent] = frame; + unique = unique + 1; + frame:SetPoint("BOTTOM", parent, "TOP", 0, 14); + frame:SetWidth(32); + frame:SetHeight(32); + frame:Hide(); + frame.base = frame:CreateTexture(nil, "BACKGROUND"); + frame.base:SetAllPoints(); + frame.base:SetColorTexture(0, 0, 0, 0.6); + frame.icon = frame:CreateTexture(nil, "ARTWORK"); + frame.icon:SetPoint("TOPLEFT", frame.base, "TOPLEFT", 1, -1); + frame.icon:SetPoint("BOTTOMRIGHT", frame.base, "BOTTOMRIGHT", -1, 1); + frame.icon:SetTexCoord(0.07, 0.93, 0.07, 0.93); + frame.cd = CreateFrame("Cooldown", format("%sCD", name), frame, "CooldownFrameTemplate"); + frame.cd:SetReverse(true); + frame.cd:SetHideCountdownNumbers(true); + frame.cd:SetAllPoints(); + return frame; +end + +local function setNameplate(unit) + local frame = frames[GetNamePlateForUnit(unit)]; + -- TODO register interesting events to track on nameplates +end + +local function unsetNameplate(unit) + local frame = frames[GetNamePlateForUnit(unit)]; + frame:UnregisterAllEvents(); + frame:Hide(); +end + +local events = { + ["NAME_PLATE_CREATED"] = createNameplate, + ["NAME_PLATE_UNIT_ADDED"] = setNameplate, + ["NAME_PLATE_UNIT_REMOVED"] = unsetNameplate, +}; +main:SetScript("OnEvent", function(self, event) + main:UnregisterAllEvents(); + main:SetScript("OnEvent", function(self, event, arg1) + events[event](arg1); + end); + main:RegisterEvent("NAME_PLATE_CREATED"); + main:RegisterEvent("NAME_PLATE_UNIT_ADDED"); + main:RegisterEvent("NAME_PLATE_UNIT_REMOVED"); +end); +main:RegisterEvent("PLAYER_LOGIN"); diff --git a/OmaTMW/OmaTMW.toc b/OmaTMW/OmaTMW.toc index a4740e4..f216802 100644 --- a/OmaTMW/OmaTMW.toc +++ b/OmaTMW/OmaTMW.toc @@ -6,3 +6,4 @@ Healthstone.lua TellMeWhen.lua +Nameplates.lua -- 2.39.5