-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcombo.lua
More file actions
61 lines (53 loc) · 1.77 KB
/
combo.lua
File metadata and controls
61 lines (53 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Combo = class('Combo')
local editor = editor
function Combo:initialize(x,y,numItems)
--Handle class-specific args
self.pos = vector(x,y)
self.numItems = numItems
--Grab settings from editor
self.selectedItem = editor.settings.drawMode
self.itemSize = 32
self.size = vector(self.itemSize*self.numItems,self.itemSize)
self.colors = {
unselected = {150,150,150,255},
selected = {255,255,255,255},
outline = {50,50,50,255}
}
self.images = {
imgMan:load('select_shape'),
imgMan:load('add_shape'),
imgMan:load('delete_shape'),
imgMan:load('add_vertex'),
imgMan:load('delete_vertex')
}
end
function Combo:setSelected(sIndex)
self.selectedItem = sIndex
editor.settings.drawMode = self.selectedItem
end
function Combo:mousepressed(mx,my,btn)
for i=0,self.numItems-1 do
if utility.point2Box(mx,my,self.pos.x+i*self.itemSize,self.pos.y,self.itemSize,self.itemSize) then
self:setSelected(i+1)
break
end
end
end
function Combo:update(dt)
self.selectedItem = editor.settings.drawMode
end
function Combo:draw()
for i=0,self.numItems-1 do
if self.selectedItem == i+1 then
love.graphics.setColor(self.colors.selected)
else
love.graphics.setColor(self.colors.unselected)
end
love.graphics.rectangle('fill',self.pos.x+i*self.itemSize,self.pos.y,self.itemSize,self.itemSize)
love.graphics.setColor(self.colors.outline)
love.graphics.rectangle('line',self.pos.x+i*self.itemSize,self.pos.y,self.itemSize,self.itemSize)
--Draw images
love.graphics.setColor(255,255,255,255)
love.graphics.draw(self.images[i+1],self.pos.x+i*self.itemSize,self.pos.y)
end
end