e3bfc6a - Add nameplate functionality if it is needed later, no users now
authorAleksi Blinnikka <aleksi.blinnikka@gmail.com>
Wed, 2 May 2018 16:00:15 +0000
committerAleksi Blinnikka <aleksi.blinnikka@gmail.com>
Wed, 2 May 2018 16:00:15 +0000
OmaTMW/Nameplates.lua [new file with mode: 0644]
OmaTMW/OmaTMW.toc

diff --git a/OmaTMW/Nameplates.lua b/OmaTMW/Nameplates.lua
new file mode 100644 (file)
index 0000000..2d1c841
--- /dev/null
@@ -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");
index a4740e4..f216802 100644 (file)
@@ -6,3 +6,4 @@
 
 Healthstone.lua
 TellMeWhen.lua
+Nameplates.lua