112 lines
2.3 KiB
Lua
112 lines
2.3 KiB
Lua
|
|
local curTime = 0
|
|
function CurTime()
|
|
return curTime
|
|
end
|
|
|
|
|
|
|
|
local consoleEnv = {
|
|
Load = function() end,
|
|
Update = function(dt) end,
|
|
Draw = function() end,
|
|
KeyPressed = love.keypressed,
|
|
KeyDown = love.keyboard.wasPressed,
|
|
print = love.graphics.print,
|
|
}
|
|
consoleEnv._G = consoleEnv
|
|
setmetatable(consoleEnv, {
|
|
__index = function(_, key)
|
|
return function(...) end
|
|
end
|
|
})
|
|
|
|
function loadGame(gameName)
|
|
local fn, err = loadfile("games/" .. gameName .. ".lua", "t", consoleEnv)
|
|
if not fn then
|
|
error("Failed to load sandbox file (1): " .. err)
|
|
end
|
|
|
|
local ok, execErr = pcall(fn)
|
|
if not ok then
|
|
error("Error running sandbox file (2): " .. execErr)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
local maxScaling = 4
|
|
function love.load()
|
|
love.window.setTitle("Fantasy Console")
|
|
love.graphics.setDefaultFilter("nearest", "nearest")
|
|
|
|
font = love.graphics.newImageFont("font.png", " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.:;<=>?-+*/)('&%$#ß!@[ß]^_{|}~", -1)
|
|
--font = love.graphics.newFont("monogram.ttf", 16)
|
|
--font:setFilter("nearest", "nearest")
|
|
|
|
scaling = 4
|
|
love.window.updateWindow()
|
|
|
|
love.keyboard.keysPressed = {}
|
|
|
|
|
|
loadGame("test")
|
|
|
|
|
|
-- Track memory usage using this
|
|
info = love.filesystem.getInfo( "font.png" )
|
|
|
|
print(info.size)
|
|
end
|
|
|
|
function love.keypressed(key)
|
|
if key == "escape" then
|
|
love.event.quit()
|
|
end
|
|
|
|
love.keyboard.keysPressed[key] = true
|
|
|
|
if (consoleEnv.WasKeyPressed) then
|
|
consoleEnv.WasKeyPressed(key)
|
|
end
|
|
end
|
|
|
|
function love.keyboard.wasPressed(key)
|
|
return love.keyboard.keysPressed[key]
|
|
end
|
|
|
|
function love.window.updateWindow()
|
|
love.window.setMode(scaling*240, scaling*160, {resizable=false, vsync=0})
|
|
end
|
|
|
|
function love.update(dt)
|
|
curTime = curTime + dt
|
|
|
|
if (love.keyboard.wasPressed("f1")) then
|
|
scaling = scaling + 1
|
|
|
|
if (scaling == maxScaling+1) then
|
|
scaling = 1
|
|
end
|
|
|
|
love.window.updateWindow()
|
|
end
|
|
|
|
love.keyboard.keysPressed = {}
|
|
|
|
if (consoleEnv.Update) then
|
|
consoleEnv.Update(dt, curTime)
|
|
end
|
|
end
|
|
|
|
function love.draw()
|
|
love.graphics.scale(scaling, scaling)
|
|
|
|
love.graphics.setFont(font)
|
|
|
|
love.graphics.print("0/32 KB used", 3, 0)
|
|
|
|
if (consoleEnv.Draw) then
|
|
consoleEnv.Draw()
|
|
end
|
|
end
|