95 lines
2.8 KiB
Lua
95 lines
2.8 KiB
Lua
local logger = require("utils/logger")
|
|
local lovehandler = require("utils/love_file_handler")
|
|
|
|
multi, thread = require("multi"):init({priority=true})
|
|
multi.setClock(require("socket").gettime) -- When on linux os.clock doesn't reture actual seconds the program has elapsed for
|
|
GLOBAL, THREAD = require("multi.integration.loveManager"):init()
|
|
|
|
|
|
|
|
local fileHandler, logCtrl = lovehandler.new("logs/jeopardy.log", {
|
|
max_size = 512 * 1024, -- rotate at 512 KB
|
|
max_files = 3,
|
|
buffered = false, -- write every line immediately (safest for games)
|
|
})
|
|
|
|
lovehandler.auto_flush_on_quit(logCtrl)
|
|
|
|
log = logger.new("jeopardy", {
|
|
level = logger.LEVELS.INFO,
|
|
handlers = {
|
|
logger.handlers.ConsoleHandler({ colours = true }),
|
|
fileHandler,
|
|
},
|
|
})
|
|
|
|
local gui = require("gui")
|
|
local color = require("gui.core.color")
|
|
local title = require("menus.title")
|
|
local menu = require("gui.core.menus")
|
|
|
|
color.indexColor("bg","#2b348b")
|
|
color.indexColor("tile_bg","#5459e4")
|
|
color.indexColor("header_tile","#2a2e91")
|
|
color.indexColor("status_font", "#e4b82a")
|
|
color.indexColor("title_font","#b16d24")
|
|
color.indexColor("question_bg","#363ac8")
|
|
color.indexColor("tile_font","#ffffff")
|
|
color.indexColor("header_font","#fef6eeda")
|
|
color.indexColor("correct", "#52b11b")
|
|
color.indexColor("skip", "#5d5d5d")
|
|
color.indexColor("wrong", "#bd2626")
|
|
|
|
require("gui.addons")
|
|
|
|
gui:setHotKey({"f11"})(function()
|
|
fullscreen, fstype = love.window.getFullscreen()
|
|
love.window.setFullscreen(not fullscreen, "desktop")
|
|
end)
|
|
|
|
local loadLog = log:child("load")
|
|
local old = multi.error
|
|
|
|
multi.error = function(self, err)
|
|
loadLog:error("Error: %s", err)
|
|
loadLog:error(debug.traceback())
|
|
love.quit()
|
|
end
|
|
|
|
function love.load()
|
|
loadLog:info("Starting Jeopardy Game")
|
|
loadLog:debug("Setting game identity to jeopardy")
|
|
for i,v in ipairs(color.listColors(showAllColors)) do
|
|
loadLog:debug("Indexed color %s",v)
|
|
end
|
|
love.filesystem.setIdentity("jeopardy")
|
|
loadLog:trace("Creating save directory")
|
|
success = love.filesystem.createDirectory("")
|
|
if not success then
|
|
loadLog:fatal("Unable to create save directory")
|
|
love.quit()
|
|
end
|
|
loadLog:trace("Creating save directory")
|
|
gui:cacheImage({"assets/images/checked.png","assets/images/unchecked.png","assets/images/speaker.png"})
|
|
gui:setAspectSize(1920, 1080)
|
|
gui.aspect_ratio = true
|
|
loadLog:debug("Creating main background image")
|
|
local bg = gui:newImageLabel("assets/images/background.png")
|
|
bg:fullFrame()
|
|
|
|
loadLog:debug("Init menu module")
|
|
menu.init(bg)
|
|
loadLog:debug("Displaying title menu")
|
|
title:visible(true)
|
|
end
|
|
|
|
function love.update(dt)
|
|
gui.update(dt)
|
|
multi:uManager(dt)
|
|
end
|
|
|
|
function love.draw()
|
|
gui.draw()
|
|
end
|
|
|