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)