pico8-0hh1/ui.lua
2023-10-07 19:15:47 +02:00

43 lines
1.2 KiB
Lua

function make_button(options)
local state = 0
-- 0 = normal, 1 = hovered, 2 = pressed
local w = print(options.text, 0, -100)
return {
x = options.x,
y = options.y,
w = options.w or w,
h = options.h or 6,
data = options.data,
text = options.text,
on_click = options.on_click,
on_hover = options.on_hover,
ogColor = options.color or 5,
selected_color = options.selected_color or 5,
color = options.color or 5,
draw = function(self, selected)
standard_font()
local color = selected and self.selected_color or self.color
print(self.text, self.x, self.y, color)
-- rect(self.x, self.y, self.x+self.w, self.y+self.h, color)
end,
update = function(self)
self.color = self.ogColor
if mouse_x >= self.x and mouse_x <= self.x + self.w
and mouse_y >= self.y and mouse_y <= self.y + self.h then
if stat(34) & 1 == 0 and state == 2 and self.on_click then
self.on_click(self)
end
if stat(34) & 1 == 1 then
state = 2
else
if self.on_hover then self:on_hover() end
state = 1
end
else
state = 0
end
end
}
end