Mercurial > wow > skeletonkey
diff SkeletonUnit/UnitFrame.lua @ 0:69e828f4238a
Initial Commit
author | Nenue |
---|---|
date | Mon, 20 Jun 2016 06:35:11 -0400 |
parents | |
children | cd7d06bcd98d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SkeletonUnit/UnitFrame.lua Mon Jun 20 06:35:11 2016 -0400 @@ -0,0 +1,90 @@ +-------------------------------------------- +-- KrakTool +-- Nick +-- @project - r e v i s i o n @ @project-hash@ +-- @file - r e v i s i o n @ @file-hash@ +-- Created: 6/16/2016 3:46 AM +-------------------------------------------- + +local KT = select(2,...) +local PLAYER_NAMEPLATE +local PLAYER_WIDTH = 220 +local BUFF_SIZE = 24 + + +KT.register(KTplayerFrame) +KTplayerFrame:RegisterUnitEvent("UNIT_HEALTH_FREQUENT", "player") +KTplayerFrame:RegisterUnitEvent("UNIT_POWER_FREQUENT", "player") +KTplayerFrame:RegisterUnitEvent("UNIT_AURA", 'player') +KTplayerFrame:RegisterEvent("NAME_PLATE_UNIT_ADDED") +KTplayerFrame:RegisterEvent("NAME_PLATE_UNIT_REMOVED") +KTplayerFrame.event = function(self) + -- print(C_NamePlate.GetNamePlateForUnit('player')) +end + +local buttons = {} +local SetupButton = function(self, unit, index) + if not buttons[index] then + buttons[index] = CreateFrame('Frame', 'KT'..unit..'Buff'..index, self, 'KTAuraButton') + buttons[index]:SetSize(BUFF_SIZE, BUFF_SIZE) + buttons[index].cooldown:SetHideCountdownNumbers(true) + + end + return buttons[index] +end + +KTplayerFrame.UNIT_AURA = function(self, event, unit) + local buffOffset = 0 + for i = 1, 16 do + --UnitAura() + local aura, _, texture, count, dispelType, duration, expires, caster = UnitAura(unit, i, nil, 'HELPFUL') + if aura then + local button = SetupButton(self, unit, i) + + button.icon:SetTexture(texture) + button.cooldown:SetCooldown(expires - duration, duration) + button.cooldown:Show() + button.count:SetText(count > 0 and count or nil) + button:SetPoint('BOTTOMLEFT', self, 'TOPLEFT', buffOffset* BUFF_SIZE, 2) + button:Show() + buffOffset = buffOffset + 1 + else + if buttons[i] then + buttons[i]:Hide() + end + end + end +end + +KTplayerFrame.NAME_PLATE_UNIT_ADDED = function(self, event, unit) + print('|cFF008800'..unit) + if UnitIsUnit('player', unit) then + PLAYER_NAMEPLATE = unit + self:ClearAllPoints() + self:SetPoint('TOP', C_NamePlate.GetNamePlateForUnit(unit), 'BOTTOM', 0, 0) + end +end +KTplayerFrame.NAME_PLATE_UNIT_REMOVED = function(self, event, unit) + if unit == PLAYER_NAMEPLATE then + PLAYER_NAMEPLATE = nil + self:ClearAllPoints() + self:SetPoint('LEFT', UIParent, 'LEFT', 25, 0) + end +end + +KTplayerFrame.UNIT_HEALTH_FREQUENT = function(self, ...) + --print(UnitHealth('player') / UnitHealthMax('player')) + self.healthbar:SetWidth(PLAYER_WIDTH * UnitHealth('player') / UnitHealthMax('player')) + return true +end + +KTplayerFrame.UNIT_POWER_FREQUENT = function(self) + self.powerbar:SetWidth(PLAYER_WIDTH * UnitPower('player') / UnitPowerMax('player')) + return true +end + +KTplayerFrame:SetWidth(PLAYER_WIDTH) +KTplayerFrame.variables = function() + KTplayerFrame:UNIT_HEALTH_FREQUENT() + KTplayerFrame:UNIT_POWER_FREQUENT() +end \ No newline at end of file