1
0
Fork 0
mirror of https://github.com/Reuh/ubiquitousse.git synced 2025-10-27 17:19:31 +00:00

Addded basic ctrµLua backend, only load backend for loaded modules

This commit is contained in:
Reuh 2016-04-26 17:17:46 +02:00
parent cb14434567
commit 403aa80c46
2 changed files with 70 additions and 4 deletions

View file

@ -1,2 +1,62 @@
-- TODO: everything
error("TODO level over 9000")
--- ctrµLua backend 0.0.1 for Abstract.
-- Provides a partial abstract API. Still a lot to implement.
-- Made for some ctrµLua version and abstract 0.0.1.
-- See `abstract` for Abstract API.
-- General
local version = "0.0.1"
-- Require stuff
local abstract = require((...):match("^(.-abstract)%."))
local ctr = require("ctr")
local gfx = require("gfx")
-- Version compatibility warning
do
local function checkCompat(stuffName, expectedVersion, actualVersion)
if actualVersion ~= expectedVersion then
local txt = ("Abstract ctrµLua backend version "..version.." was made for %s %s but %s is used!\nThings may not work as expected.")
:format(stuffName, expectedVersion, actualVersion)
print(txt)
for i=0,300 do
gfx.start(gfx.TOP)
gfx.wrappedText(0, 0, txt, gfx.TOP_WIDTH)
gfx.stop()
gfx.render()
end
end
end
-- checkCompat("ctrµLua", "", ("%s.%s.%s"):format(love.getVersion())) -- not really a version, just get the latest build
checkCompat("abstract", "0.0.1", abstract.version)
end
-- Redefine all functions in tbl which also are in toAdd, so when used they call the old function (in tbl) and then the new (in toAdd).
local function add(tbl, toAdd)
for k,v in pairs(toAdd) do
local old = tbl[k]
tbl[k] = function(...)
old(...)
return v(...)
end
end
end
-- abstract
abstract.backend = "ctrulua"
-- abstract.event: TODO
-- abstract.draw: TODO
-- abstract.audio: TODO
-- abstract.time
if abstract.time then
add(abstract.time, {
get = function()
return ctr.time() / 1000
end
})
end
-- abstract.input: TODO

View file

@ -44,7 +44,7 @@ end
abstract.backend = "love"
-- abstract.event
do
if abstract.event then
local updateDefault = abstract.event.update
abstract.event.update = function() end
function love.update(dt)
@ -83,6 +83,7 @@ end
end
-- abstract.draw
if abstract.draw then
local defaultFont = love.graphics.getFont()
add(abstract.draw, {
init = function(params)
@ -138,8 +139,10 @@ function love.resize(width, height)
abstract.draw.height = height
end
end
end
-- abstract.audio
if abstract.audio then
add(abstract.audio, {
-- TODO: doc
load = function(filepath)
@ -151,16 +154,19 @@ add(abstract.audio, {
}
end
})
end
-- abstract.time
if abstract.time then
add(abstract.time, {
get = function()
return love.timer.getTime()
end
})
end
-- abstract.input
do
if abstract.input then
local buttonsInUse = {}
local axesInUse = {}
function love.keypressed(key, scancode, isrepeat)