poppy-client/shared/error.lua

44 lines
1.3 KiB
Lua

local errorHandler = {}
function errorHandler.redscreen(msg)
local scale = 0.5
local errorfont
if love.filesystem.getInfo("fonts/font.ttf") then
errorfont = love.graphics.newFont("fonts/font.ttf", 45 * scale)
else
errorfont = love.graphics.newFont(45 * scale)
end
love.graphics.reset()
love.graphics.origin()
love.graphics.clear(.4, 0, 0)
love.graphics.setColor(1, 1, 1)
local message = love.graphics.newText(errorfont, "Poppy has encountered a critical fault")
local message2 = love.graphics.newText(errorfont, "Press q to exit")
local message3 = love.graphics.newText(errorfont, msg)
love.graphics.draw(message, 40, 40 * scale, 0, 1, 1)
love.graphics.draw(message2, 40, 90 * scale, 0, 1, 1)
love.graphics.draw(message3, 40, 140 * scale, 0, 1, 1)
print(msg)
local indent = 0
local messageline
for line in debug.traceback():gmatch("([^\n]*)\n?") do
print(line)
messageline = love.graphics.newText(errorfont, line)
love.graphics.draw(messageline, 40, (250 * scale) + indent, 0, 1, 1)
indent = indent + 50 * scale
end
love.graphics.present()
return function()
love.event.pump()
for event, action in love.event.poll() do
if event == "quit" then return 1 end
if event == "keypressed" then
if action == "q" then
love.event.quit( 1 )
end
end
end
love.timer.sleep(0.1)
end
end
return errorHandler