Mercurial > wow > afterdark
comparison Toaster.lua @ 1:f601b8507480
AfterDark - Initial Import
| author | wobin |
|---|---|
| date | Sun, 20 Dec 2009 21:45:17 +1100 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 0:1bfd89cb7f44 | 1:f601b8507480 |
|---|---|
| 1 local AddonName, AfterDark = ... | |
| 2 | |
| 3 local TOASTERUP = "Interface\\AddOns\\AfterDark\\Images\\WingUp" | |
| 4 local TOASTERCOASTER = "Interface\\AddOns\\AfterDark\\Images\\WingNeutral" | |
| 5 local TOASTERDOWN = "Interface\\AddOns\\AfterDark\\Images\\WingDown" | |
| 6 | |
| 7 function AfterDark:ConstructToaster(frame) | |
| 8 frame.toasterup = frame:CreateTexture(nil, "BACKGROUND") | |
| 9 frame.toasterup:SetAllPoints(frame) | |
| 10 frame.toasterup:SetTexture(TOASTERUP) | |
| 11 | |
| 12 frame.toasterdown = frame:CreateTexture(nil, "BACKGROUND") | |
| 13 frame.toasterdown:SetAllPoints(frame) | |
| 14 frame.toasterdown:SetTexture(TOASTERDOWN) | |
| 15 frame.toasterdown:SetAlpha(0) | |
| 16 | |
| 17 frame.toasterglide = frame:CreateTexture(nil, "BACKGROUND") | |
| 18 frame.toasterglide:SetAllPoints(frame) | |
| 19 frame.toasterglide:SetTexture(TOASTERCOASTER) | |
| 20 frame.toasterglide:SetAlpha(0) | |
| 21 | |
| 22 frame.fader = frame.toasterup:CreateAnimationGroup() | |
| 23 frame.fader.parent = frame.toasterup | |
| 24 frame.fader:SetLooping("BOUNCE") | |
| 25 | |
| 26 frame.toasterup.fade = frame.fader:CreateAnimation("Alpha") | |
| 27 frame.toasterup.fade:SetDuration(1) | |
| 28 frame.toasterup.fade:SetChange(-1) | |
| 29 frame.toasterup.fade:SetOrder(1) | |
| 30 | |
| 31 frame.crossfader = frame.toasterdown:CreateAnimationGroup() | |
| 32 frame.crossfader.parent = frame.toasterdown | |
| 33 frame.crossfader:SetLooping("BOUNCE") | |
| 34 | |
| 35 frame.toasterdown.fade = frame.crossfader:CreateAnimation("Alpha") | |
| 36 frame.toasterdown.fade:SetDuration(1) | |
| 37 frame.toasterdown.fade:SetChange(1) | |
| 38 frame.toasterdown.fade:SetOrder(1) | |
| 39 | |
| 40 frame.hashfader = frame.toasterglide:CreateAnimationGroup() | |
| 41 frame.hashfader.parent = frame.toasterglide | |
| 42 frame.hashfader:SetLooping("BOUNCE") | |
| 43 | |
| 44 frame.toasterglide.fade = frame.hashfader:CreateAnimation("Alpha") | |
| 45 frame.toasterglide.fade:SetDuration(0.5) | |
| 46 frame.toasterglide.fade:SetChange(1) | |
| 47 frame.toasterglide.fade:SetOrder(1) | |
| 48 | |
| 49 if math.random(0,5) > 4 then | |
| 50 local delay = math.random(30,AfterDark.db.profile.Speed * 10) | |
| 51 | |
| 52 frame.tumbler = frame:CreateAnimationGroup() | |
| 53 frame.tumbler.parent = frame | |
| 54 frame.tumbler:SetLooping("NONE") | |
| 55 | |
| 56 frame.spin = frame.tumbler:CreateAnimation("Rotation") | |
| 57 frame.spin:SetDegrees(360) | |
| 58 frame.spin:SetOrigin("CENTER", -20,-20) | |
| 59 frame.spin:SetStartDelay(delay/10) | |
| 60 frame.spin:SetDuration(1) | |
| 61 frame.spin:SetOrder(1) | |
| 62 end | |
| 63 | |
| 64 frame.IsToaster = true | |
| 65 | |
| 66 frame.Respeed = function(self) | |
| 67 if frame.spin then | |
| 68 frame.spin:SetStartDelay(math.random(30, AfterDark.db.profile.Speed * 10)/10) | |
| 69 end | |
| 70 end | |
| 71 | |
| 72 frame.Start = function(self) | |
| 73 self.mover:Play() | |
| 74 self.fader:Play() | |
| 75 self.crossfader:Play() | |
| 76 self.hashfader:Play() | |
| 77 if self.tumbler then | |
| 78 self.tumbler:Play() | |
| 79 end | |
| 80 self:Show() | |
| 81 end | |
| 82 | |
| 83 frame.Finish = function(self) | |
| 84 self:StopAnimating() | |
| 85 self:Hide() | |
| 86 end | |
| 87 | |
| 88 end |
