1star = class:new()
2
3function star:init(x, y)
4	--PHYSICS STUFF
5	self.x = x-6/16
6	self.y = y-11/16
7	self.speedy = 0
8	self.speedx = 0
9	self.width = 12/16
10	self.height = 12/16
11	self.static = true
12	self.active = true
13	self.category = 6
14	self.mask = {	true,
15					false, false, true, true, true,
16					false, true, false, true, true,
17					false, true, true, false, true,
18					true, true, false, true, true,
19					false, true, true, false, false,
20					true, false, true, true, true}
21	self.destroy = false
22	self.gravity = 40
23	self.autodelete = true
24
25	--IMAGE STUFF
26	self.drawable = false
27	self.graphic = starimg
28	self.quad = starquad[1]
29	self.offsetX = 7
30	self.offsetY = 3
31	self.quadcenterX = 9
32	self.quadcenterY = 8
33
34	self.rotation = 0 --for portals
35	self.uptimer = 0
36	self.timer = 0
37	self.quadi = 1
38
39	self.falling = false
40end
41
42function star:update(dt)
43	--rotate back to 0 (portals)
44	self.rotation = math.mod(self.rotation, math.pi*2)
45	if self.rotation > 0 then
46		self.rotation = self.rotation - portalrotationalignmentspeed*dt
47		if self.rotation < 0 then
48			self.rotation = 0
49		end
50	elseif self.rotation < 0 then
51		self.rotation = self.rotation + portalrotationalignmentspeed*dt
52		if self.rotation > 0 then
53			self.rotation = 0
54		end
55	end
56
57	if self.uptimer < mushroomtime then
58		self.uptimer = self.uptimer + dt
59		self.y = self.y - dt*(1/mushroomtime)
60		self.speedx = mushroomspeed
61	else
62		if self.static == true then
63			self.static = false
64			self.active = true
65			self.drawable = true
66			self.speedy = -starjumpforce/2
67		end
68	end
69
70	--animate
71	self.timer = self.timer + dt
72	while self.timer > staranimationdelay do
73		self.quadi = self.quadi + 1
74		if self.quadi == 5 then
75			self.quadi = 1
76		end
77		self.quad = starquad[self.quadi]
78		self.timer = self.timer - staranimationdelay
79	end
80
81	if self.destroy then
82		return true
83	else
84		return false
85	end
86end
87
88function star:draw()
89	if self.drawable == false then
90		--Draw it coming out of the block.
91		love.graphics.drawq(self.graphic, self.quad, math.floor(((self.x-xscroll)*16+self.offsetX)*scale), math.floor((self.y*16-self.offsetY)*scale), 0, scale, scale, self.quadcenterX, self.quadcenterY)
92	end
93end
94
95function star:leftcollide(a, b)
96	self.speedx = mushroomspeed
97
98	if a == "player" then
99		b:star()
100		self.destroy = true
101	end
102
103	return false
104end
105
106function star:rightcollide(a, b)
107	self.speedx = -mushroomspeed
108
109	if a == "player" then
110		b:star()
111		self.destroy = true
112	end
113
114	return false
115end
116
117function star:floorcollide(a, b)
118	if self.active and a == "player" then
119		b:star()
120		self.destroy = true
121	end
122
123	self.speedy = -starjumpforce
124	return false
125end
126
127function star:ceilcollide(a, b)
128	if self.active and a == "player" then
129		b:star()
130		self.destroy = true
131	end
132end
133
134function star:jump(x)
135	self.falling = true
136	self.speedy = -mushroomjumpforce
137	if self.x+self.width/2 < x-0.5 then
138		self.speedx = -mushroomspeed
139	elseif self.x+self.width/2 > x-0.5 then
140		self.speedx = mushroomspeed
141	end
142end