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