1
0
Fork 0
mirror of https://github.com/Reuh/ubiquitousse.git synced 2025-10-28 01:29: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 --- ctrµLua backend 0.0.1 for Abstract.
error("TODO level over 9000") -- 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.backend = "love"
-- abstract.event -- abstract.event
do if abstract.event then
local updateDefault = abstract.event.update local updateDefault = abstract.event.update
abstract.event.update = function() end abstract.event.update = function() end
function love.update(dt) function love.update(dt)
@ -83,6 +83,7 @@ end
end end
-- abstract.draw -- abstract.draw
if abstract.draw then
local defaultFont = love.graphics.getFont() local defaultFont = love.graphics.getFont()
add(abstract.draw, { add(abstract.draw, {
init = function(params) init = function(params)
@ -138,8 +139,10 @@ function love.resize(width, height)
abstract.draw.height = height abstract.draw.height = height
end end
end end
end
-- abstract.audio -- abstract.audio
if abstract.audio then
add(abstract.audio, { add(abstract.audio, {
-- TODO: doc -- TODO: doc
load = function(filepath) load = function(filepath)
@ -151,16 +154,19 @@ add(abstract.audio, {
} }
end end
}) })
end
-- abstract.time -- abstract.time
if abstract.time then
add(abstract.time, { add(abstract.time, {
get = function() get = function()
return love.timer.getTime() return love.timer.getTime()
end end
}) })
end
-- abstract.input -- abstract.input
do if abstract.input then
local buttonsInUse = {} local buttonsInUse = {}
local axesInUse = {} local axesInUse = {}
function love.keypressed(key, scancode, isrepeat) function love.keypressed(key, scancode, isrepeat)