56 lines
1.4 KiB
Lua
56 lines
1.4 KiB
Lua
require 'grid'
|
|
require 'point'
|
|
require 'line'
|
|
require 'mouse'
|
|
require 'levelhandler'
|
|
require 'button'
|
|
require 'menu'
|
|
|
|
Input = require 'input'
|
|
|
|
|
|
function love.load()
|
|
love.window.setMode( 800, 480 )
|
|
|
|
InMenu = true
|
|
|
|
love.graphics.setLineStyle( Config.lineStyle )
|
|
end
|
|
|
|
function love.update( dt )
|
|
InMenu = Menu.current_state ~= MenuStateIndex.hidden
|
|
Mouse:update()
|
|
Input:update()
|
|
|
|
local exit = Input:actionReleased( 'exit' )
|
|
|
|
if InMenu then
|
|
Menu:update( dt, Point:new( Mouse.x, Mouse.y ), Mouse.pressed )
|
|
else
|
|
if GameGrid:isCompleted() and not Mouse.pressed then
|
|
Menu.current_state = MenuStateIndex.completed
|
|
end
|
|
end
|
|
-- Switch menu state or exit
|
|
if exit then
|
|
if not InMenu then
|
|
Menu.current_state = MenuStateIndex.pause
|
|
elseif Menu.current_state == MenuStateIndex.start then
|
|
love.event.quit()
|
|
elseif Menu.current_state == MenuStateIndex.pause then
|
|
Menu.current_state = MenuStateIndex.hidden
|
|
elseif Menu.current_state == MenuStateIndex.levels then
|
|
Menu.current_state = MenuStateIndex.start
|
|
end
|
|
end
|
|
end
|
|
|
|
function love.draw()
|
|
if InMenu then
|
|
love.graphics.setLineWidth( Config.menuLineWidth )
|
|
Menu:draw()
|
|
else
|
|
love.graphics.setLineWidth( Config.cellSize * Config.lineWidth )
|
|
GameGrid:draw()
|
|
end
|
|
end
|