1mushroom = class:new()
2
3function mushroom: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.autodelete = true
23
24	--IMAGE STUFF
25	self.drawable = false
26	self.graphic = entitiesimg
27	self.quad = entityquads[2].quad
28	self.offsetX = 7
29	self.offsetY = 3
30	self.quadcenterX = 9
31	self.quadcenterY = 8
32
33	self.rotation = 0 --for portals
34	self.uptimer = 0
35
36	self.falling = false
37end
38
39function mushroom:update(dt)
40	--rotate back to 0 (portals)
41	self.rotation = math.mod(self.rotation, math.pi*2)
42	if self.rotation > 0 then
43		self.rotation = self.rotation - portalrotationalignmentspeed*dt
44		if self.rotation < 0 then
45			self.rotation = 0
46		end
47	elseif self.rotation < 0 then
48		self.rotation = self.rotation + portalrotationalignmentspeed*dt
49		if self.rotation > 0 then
50			self.rotation = 0
51		end
52	end
53
54	if self.uptimer < mushroomtime then
55		self.uptimer = self.uptimer + dt
56		self.y = self.y - dt*(1/mushroomtime)
57		self.speedx = mushroomspeed
58
59	else
60		if self.static == true then
61			self.static = false
62			self.active = true
63			self.drawable = true
64		end
65	end
66
67	if self.destroy then
68		return true
69	else
70		return false
71	end
72end
73
74function mushroom:draw()
75	if self.uptimer < mushroomtime and not self.destroy then
76		--Draw it coming out of the block.
77		love.graphics.drawq(entitiesimg, entityquads[2].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)
78	end
79end
80
81function mushroom:leftcollide(a, b)
82	self.speedx = mushroomspeed
83
84	if a == "player" then
85		b:grow()
86		self.active = false
87		self.destroy = true
88		self.drawable = false
89	end
90
91	return false
92end
93
94function mushroom:rightcollide(a, b)
95	self.speedx = -mushroomspeed
96
97	if a == "player" then
98		b:grow()
99		self.active = false
100		self.destroy = true
101		self.drawable = false
102	end
103
104	return false
105end
106
107function mushroom:floorcollide(a, b)
108	if a == "player" then
109		b:grow()
110		self.active = false
111		self.destroy = true
112		self.drawable = false
113	end
114end
115
116function mushroom:ceilcollide(a, b)
117	if a == "player" then
118		b:grow()
119		self.active = false
120		self.destroy = true
121		self.drawable = false
122	end
123end
124
125function mushroom:jump(x)
126	self.falling = true
127	self.speedy = -mushroomjumpforce
128	if self.x+self.width/2 < x-0.5 then
129		self.speedx = -mushroomspeed
130	elseif self.x+self.width/2 > x-0.5 then
131		self.speedx = mushroomspeed
132	end
133end