lines-lua/menu/levels.lua
2025-10-23 16:32:58 +03:00

47 lines
1 KiB
Lua

require 'menu.state'
require 'button'
require 'text'
local common = require 'menu.common'
local size, margin = 60, 30
local levelSize = Point:new( size, size )
local yOffset = 160
local levelsPerLine = 8
local levelCount = #LevelHandler.levels
local buttons = {}
for i=1,levelCount do
local x = (size + margin) * (i % levelsPerLine)
local y = (size + margin) * math.floor(i / levelsPerLine) + yOffset
local button = Button:new(
Point:new(x, y),
levelSize,
tostring(i),
nil,
nil,
function()
GameGrid = LevelHandler:indexed(i)
Menu.updateCellSize()
Menu.current_state = MenuStateIndex.hidden
end
)
table.insert(buttons, button)
end
local exitToMenuButton = Button:new(
Point:new( 240, 40 ),
common.buttonSize,
'Return to menu',
nil,
nil,
function()
Menu.current_state = MenuStateIndex.start
end
)
table.insert(buttons, exitToMenuButton)
return MenuState:new(buttons)