Mercurial > wow > afterdark
view Toaster.lua @ 1:f601b8507480
AfterDark - Initial Import
author | wobin |
---|---|
date | Sun, 20 Dec 2009 21:45:17 +1100 |
parents | |
children |
line wrap: on
line source
local AddonName, AfterDark = ... local TOASTERUP = "Interface\\AddOns\\AfterDark\\Images\\WingUp" local TOASTERCOASTER = "Interface\\AddOns\\AfterDark\\Images\\WingNeutral" local TOASTERDOWN = "Interface\\AddOns\\AfterDark\\Images\\WingDown" function AfterDark:ConstructToaster(frame) frame.toasterup = frame:CreateTexture(nil, "BACKGROUND") frame.toasterup:SetAllPoints(frame) frame.toasterup:SetTexture(TOASTERUP) frame.toasterdown = frame:CreateTexture(nil, "BACKGROUND") frame.toasterdown:SetAllPoints(frame) frame.toasterdown:SetTexture(TOASTERDOWN) frame.toasterdown:SetAlpha(0) frame.toasterglide = frame:CreateTexture(nil, "BACKGROUND") frame.toasterglide:SetAllPoints(frame) frame.toasterglide:SetTexture(TOASTERCOASTER) frame.toasterglide:SetAlpha(0) frame.fader = frame.toasterup:CreateAnimationGroup() frame.fader.parent = frame.toasterup frame.fader:SetLooping("BOUNCE") frame.toasterup.fade = frame.fader:CreateAnimation("Alpha") frame.toasterup.fade:SetDuration(1) frame.toasterup.fade:SetChange(-1) frame.toasterup.fade:SetOrder(1) frame.crossfader = frame.toasterdown:CreateAnimationGroup() frame.crossfader.parent = frame.toasterdown frame.crossfader:SetLooping("BOUNCE") frame.toasterdown.fade = frame.crossfader:CreateAnimation("Alpha") frame.toasterdown.fade:SetDuration(1) frame.toasterdown.fade:SetChange(1) frame.toasterdown.fade:SetOrder(1) frame.hashfader = frame.toasterglide:CreateAnimationGroup() frame.hashfader.parent = frame.toasterglide frame.hashfader:SetLooping("BOUNCE") frame.toasterglide.fade = frame.hashfader:CreateAnimation("Alpha") frame.toasterglide.fade:SetDuration(0.5) frame.toasterglide.fade:SetChange(1) frame.toasterglide.fade:SetOrder(1) if math.random(0,5) > 4 then local delay = math.random(30,AfterDark.db.profile.Speed * 10) frame.tumbler = frame:CreateAnimationGroup() frame.tumbler.parent = frame frame.tumbler:SetLooping("NONE") frame.spin = frame.tumbler:CreateAnimation("Rotation") frame.spin:SetDegrees(360) frame.spin:SetOrigin("CENTER", -20,-20) frame.spin:SetStartDelay(delay/10) frame.spin:SetDuration(1) frame.spin:SetOrder(1) end frame.IsToaster = true frame.Respeed = function(self) if frame.spin then frame.spin:SetStartDelay(math.random(30, AfterDark.db.profile.Speed * 10)/10) end end frame.Start = function(self) self.mover:Play() self.fader:Play() self.crossfader:Play() self.hashfader:Play() if self.tumbler then self.tumbler:Play() end self:Show() end frame.Finish = function(self) self:StopAnimating() self:Hide() end end