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:
parent
cb14434567
commit
403aa80c46
2 changed files with 70 additions and 4 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue