Mothback/main.lua

171 lines
3.3 KiB
Lua

function love.load()
logging = true
local love_mem_usage = collectgarbage("count")
local love_init_log = "love: "..love_mem_usage.." kB, time: "..os.clock().." seconds"
secs = 0
menu_type = "no"
debug = false
debug_collision = false
editor_mode = false
text_size = 1
love.graphics.setColor(1,1,1)
love.keyboard.setKeyRepeat(true)
love.graphics.setDefaultFilter("nearest") -- good pixel
game = {
seconds_since_start = 0,
scale = 2,
width = love.graphics.getWidth(),
height = love.graphics.getHeight(),
framerate = 60
}
require "code/require"
fps_history = AvgQueue:new(30,60)
logPrint(love_init_log)
love_init_log = nil
Camera.width = game.width
Camera.height = game.height
level_list = scandir("./data/levels")
level_current_num = 1
level_current = level_list[level_current_num]
logPrint("level_current: "..level_current)
loadLevelTiles()
language = "ENG"
loadLocale(language)
gravity = 0.14
-- Debug and log stuff
memory_usage, dtcount = 0, 0
logPrint("mothback: "..collectgarbage("count").." kB, Loading time: "..os.clock().." seconds")
main_player = Player:new(75,50)
activateSpawns()
--love.audio.play(music.placeholder)
end
function love.textinput(text)
if Prompt.active_prompt then
Prompt.active_prompt:textinput(text)
end
end
function love.keypressed(...)
if Prompt.active_prompt then
Prompt.active_prompt:keypressed(...)
end
end
function love.update(dt)
-- audio update
love.audio.update()
-- fps counter
fps_current = fps_history:push(1/dt)
current_dt = dt
game.seconds_since_start = game.seconds_since_start + dt
if DemoRecording or DemoPlayback then Demo:step() end
-- things per second
dtcount = dtcount + dt
game.seconds_since_start = game.seconds_since_start + dt
if dtcount >= 1 then
secs = secs + 1
dtcount = dtcount - 1
if debug or logging then
memory_usage = math.floor(collectgarbage("count"))
end
logWrite("Second "..secs..": "..memory_usage.." kB")
end
if Prompt.active_prompt then
-- try to stop the keypress that closed the menu from spilling into the rest of the game
Keybind:checkPressed(Keybind.menu.pause)
if Prompt.active_prompt.closing then
Prompt.active_prompt = nil
else
Prompt.active_prompt:update()
end
return
end
if love.keyboard.isDown("f7") then
local test_prompt = Prompt:new({
name = "test prompt",
func = function(prompt)
print("test prompt got input: "..prompt.input)
end,
})
test_prompt:activate()
end
--keypressed
if Keybind:checkPressed(Keybind.menu.pause) then
if do_pause then
do_pause = false
else
menu_type = "pause"
initMenu(menu_type)
end
end
--MenuStep
if menu_type ~= nil then stepMenu(menu_type) end
--editor
if editor_mode then
stepEditor()
else
stepGame()
end
end
function love.wheelmoved(_, y)
if editor_mode then
scrollEditor(y)
end
end
function love.draw()
if game.width ~= love.graphics.getWidth() or game.height ~= love.graphics.getHeight() then
game.width = love.graphics.getWidth()
game.height = love.graphics.getHeight()
game_resize = true
else
game_resize = false
end
if editor_mode then
drawEditor()
else
drawGame()
end
if menu_type ~= nil then drawMenu(menu_type) end
love.graphics.print(game.scale,10,40)
if DemoRecording or DemoPlayback then Demo:draw() end
if Prompt.active_prompt then
Prompt.active_prompt:draw()
end
frameDebugFlush()
end