47 lines
1 KiB
Lua
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)
|