Compare commits

..

No commits in common. "e04b8e523ebdb5b7564f8f42653f61fb57370259" and "a47e14ffcaf0dde3f66f6e93157208e529c765ff" have entirely different histories.

4 changed files with 10 additions and 61 deletions

View file

@ -6,7 +6,7 @@ require 'makegrid'
---@field current integer
LevelHandler = {
levels = {
'test2', 'test', 'test3'
'test3', 'test2', 'test'
},
current = 1,
}
@ -18,22 +18,13 @@ function LevelHandler:next()
if self.current > #self.levels then
self.current = 1
end
local levelPath = 'levels/' .. self.levels[self.current]
local levelPath = string.format('levels/%s', self.levels[self.current])
return MakeGrid( require( levelPath ) )
end
-- Returns first level
---@return Grid
function LevelHandler:first()
local levelPath = 'levels/' .. self.levels[1]
return MakeGrid( require( levelPath ) )
end
-- Returns level by its index in table
---@param i number
---@return Grid
function LevelHandler:indexed(i)
self.current = i
local levelPath = 'levels/' .. self.levels[self.current]
local levelPath = string.format('levels/%s', self.levels[1])
return MakeGrid( require( levelPath ) )
end

View file

@ -2,6 +2,9 @@ require 'config'
require 'button'
require 'menu.state'
-- Menu handler
---@class Menu
---@field states MenuState[]
@ -13,7 +16,7 @@ Menu = {
-- Pause menu
[MenuStateIndex.pause] = require 'menu.pause',
-- Level selector
[MenuStateIndex.levels] = require 'menu.levels',
[MenuStateIndex.levels] = MenuState:new(),
-- Level completed menu
[MenuStateIndex.completed] = require 'menu.completed',
-- Empty state

View file

@ -1,47 +0,0 @@
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)

View file

@ -16,7 +16,9 @@ local startButton = Button:new(
nil,
nil,
function()
Menu.current_state = MenuStateIndex.levels
Menu.current_state = MenuStateIndex.hidden
GameGrid = LevelHandler:first()
Menu.updateCellSize()
end
)