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 |