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