From 07cc7216a1ea0a8efc94a1e40f1269069059d305 Mon Sep 17 00:00:00 2001 From: Reuh Date: Fri, 23 Dec 2016 17:22:38 +0100 Subject: [PATCH] The Ubiquitousse Update --- audio.lua | 2 +- backend/ctrulua.lua | 24 ++++++------- backend/love.lua | 82 ++++++++++++++++++++++----------------------- draw.lua | 6 ++-- event.lua | 14 ++++---- init.lua | 12 +++---- input.lua | 12 +++---- scene.lua | 26 +++++++------- time.lua | 14 ++++---- 9 files changed, 96 insertions(+), 96 deletions(-) diff --git a/audio.lua b/audio.lua index 5bb2146..c04a057 100644 --- a/audio.lua +++ b/audio.lua @@ -1,4 +1,4 @@ --- abstract.audio +-- ubiquitousse.audio --- Audio functions. return { diff --git a/backend/ctrulua.lua b/backend/ctrulua.lua index 7432dba..8106b05 100644 --- a/backend/ctrulua.lua +++ b/backend/ctrulua.lua @@ -7,7 +7,7 @@ local version = "0.0.1" -- Require stuff -local abstract = require((...):match("^(.-abstract)%.")) +local uqt = require((...):match("^(.-ubiquitousse)%.")) local ctr = require("ctr") local gfx = require("ctr.gfx") @@ -18,7 +18,7 @@ do 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 + for _=0,300 do gfx.start(gfx.TOP) gfx.wrappedText(0, 0, txt, gfx.TOP_WIDTH) gfx.stop() @@ -27,7 +27,7 @@ do 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) + checkCompat("abstract", "0.0.1", uqt.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). @@ -41,20 +41,20 @@ local function add(tbl, toAdd) end end --- abstract -abstract.backend = "ctrulua" +-- uqt +uqt.backend = "ctrulua" --- abstract.event: TODO +-- uqt.event: TODO --- abstract.draw: TODO +-- uqt.draw: TODO --- abstract.audio: TODO +-- uqt.audio: TODO --- abstract.time -if abstract.time then -add(abstract.time, { +-- uqt.time +if uqt.time then +add(uqt.time, { get = ctr.time }) end --- abstract.input: TODO +-- uqt.input: TODO diff --git a/backend/love.lua b/backend/love.lua index a337a73..6f822d5 100644 --- a/backend/love.lua +++ b/backend/love.lua @@ -13,7 +13,7 @@ local displayKeyConstant = true -- If using ScanCodes, sets this to true so the local version = "0.0.1" -- Require stuff -local abstract = require((...):match("^(.-abstract)%.")) +local uqt = require((...):match("^(.-ubiquitousse)%.")) -- Version compatibility warning do @@ -26,7 +26,7 @@ do end end checkCompat("Löve", "0.10.1", ("%s.%s.%s"):format(love.getVersion())) - checkCompat("abstract", "0.0.1", abstract.version) + checkCompat("abstract", "0.0.1", uqt.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). @@ -40,35 +40,35 @@ local function add(tbl, toAdd) end end --- abstract -abstract.backend = "love" +-- uqt +uqt.backend = "love" --- abstract.event -if abstract.event then -local updateDefault = abstract.event.update -abstract.event.update = function() end +-- uqt.event +if uqt.event then +local updateDefault = uqt.event.update +uqt.event.update = function() end function love.update(dt) -- Value update - abstract.draw.fps = love.timer.getFPS() + uqt.draw.fps = love.timer.getFPS() -- Stuff defined in abstract.lua updateDefault(dt*1000) -- Callback - abstract.event.update(dt) + uqt.event.update(dt) end -local drawDefault = abstract.event.draw -abstract.event.draw = function() end +local drawDefault = uqt.event.draw +uqt.event.draw = function() end function love.draw() love.graphics.push() -- Resize type local winW, winH = love.graphics.getWidth(), love.graphics.getHeight() - local gameW, gameH = abstract.draw.params.width, abstract.draw.params.height - if abstract.draw.params.resizeType == "auto" then + local gameW, gameH = uqt.draw.params.width, uqt.draw.params.height + if uqt.draw.params.resizeType == "auto" then love.graphics.scale(winW/gameW, winH/gameH) - elseif abstract.draw.params.resizeType == "center" then + elseif uqt.draw.params.resizeType == "center" then love.graphics.translate(math.floor(winW/2-gameW/2), math.floor(winH/2-gameH/2)) end @@ -76,18 +76,18 @@ function love.draw() drawDefault() -- Callback - abstract.event.draw() + uqt.event.draw() love.graphics.pop() end end --- abstract.draw -if abstract.draw then +-- uqt.draw +if uqt.draw then local defaultFont = love.graphics.getFont() -add(abstract.draw, { +add(uqt.draw, { init = function(params) - local p = abstract.draw.params + local p = uqt.draw.params love.window.setTitle(p.title) love.window.setMode(p.width, p.height, { resizable = p.resizable @@ -134,16 +134,16 @@ add(abstract.draw, { end, }) function love.resize(width, height) - if abstract.draw.params.resizeType == "none" then - abstract.draw.width = width - abstract.draw.height = height + if uqt.draw.params.resizeType == "none" then + uqt.draw.width = width + uqt.draw.height = height end end end --- abstract.audio -if abstract.audio then -add(abstract.audio, { +-- uqt.audio +if uqt.audio then +add(uqt.audio, { -- TODO: doc load = function(filepath) local audio = love.audio.newSource(filepath) @@ -156,17 +156,17 @@ add(abstract.audio, { }) end --- abstract.time -if abstract.time then -add(abstract.time, { +-- uqt.time +if uqt.time then +add(uqt.time, { get = function() return love.timer.getTime() end }) end --- abstract.input -if abstract.input then +-- uqt.input +if uqt.input then local buttonsInUse = {} local axesInUse = {} function love.keypressed(key, scancode, isrepeat) @@ -227,7 +227,7 @@ end love.mouse.setVisible(false) -add(abstract.input, { +add(uqt.input, { buttonDetector = function(...) local ret = {} for _,id in ipairs({...}) do @@ -290,7 +290,7 @@ add(abstract.input, { for _,id in ipairs({...}) do -- Binary axis if id:match(".+%,.+") then - local d1, d2 = abstract.input.buttonDetector(id:match("^(.+)%,(.+)$")) + local d1, d2 = uqt.input.buttonDetector(id:match("^(.+)%,(.+)$")) table.insert(ret, function() local b1, b2 = d1(), d2() if b1 and b2 then return 0 @@ -427,7 +427,7 @@ add(abstract.input, { for _,id in ipairs({...}) do -- Binary axis if id:match(".+%,.+") then - local b1, b2 = abstract.input.buttonName(id:match("^(.+)%,(.+)$")) + local b1, b2 = uqt.input.buttonName(id:match("^(.+)%,(.+)$")) table.insert(ret, b1.." / "..b2) -- Mouse move elseif id:match("^mouse%.move%.") then @@ -466,31 +466,31 @@ add(abstract.input, { }) -- Defaults -abstract.input.default.pointer:bind( +uqt.input.default.pointer:bind( { "absolute", "keyboard.left,keyboard.right", "keyboard.up,keyboard.down" }, { "absolute", "gamepad.axis.1.leftx", "gamepad.axis.1.lefty" } ) -abstract.input.default.up:bind( +uqt.input.default.up:bind( "keyboard.up", "keyboard.w", "gamepad.button.1.dpup", "gamepad.axis.1.lefty%-0.5" ) -abstract.input.default.down:bind( +uqt.input.default.down:bind( "keyboard.down", "keyboard.s", "gamepad.button.1.dpdown", "gamepad.axis.1.lefty%0.5" ) -abstract.input.default.right:bind( +uqt.input.default.right:bind( "keyboard.right", "keyboard.d", "gamepad.button.1.dpright", "gamepad.axis.1.leftx%0.5" ) -abstract.input.default.left:bind( +uqt.input.default.left:bind( "keyboard.left", "keyboard.a", "gamepad.button.1.dpleft", "gamepad.axis.1.leftx%-0.5" ) -abstract.input.default.confirm:bind( +uqt.input.default.confirm:bind( "keyboard.enter", "keyboard.space", "keyboard.lshift", "keyboard.e", "gamepad.button.1.a" ) -abstract.input.default.cancel:bind( +uqt.input.default.cancel:bind( "keyboard.escape", "keyboard.backspace", "gamepad.button.1.b" ) diff --git a/draw.lua b/draw.lua index 098fd2a..a79c54f 100644 --- a/draw.lua +++ b/draw.lua @@ -1,5 +1,5 @@ --- abstract.draw -local abstract = require((...):match("^(.-abstract)%.")) +-- ubiquitousse.draw +local uqt = require((...):match("^(.-ubiquitousse)%.")) --- The drawing functions: everything that affect the display/window. -- The coordinate system used is: @@ -28,7 +28,7 @@ draw = { -- This function is expected to be only called once, before doing any drawing operation. -- @tparam table params the game parameters -- @usage -- Default values: - -- abstract.setup { + -- ubiquitousse.init { -- title = "Abstract Engine", -- usually window title -- width = 800, -- in px -- height = 600, -- in px diff --git a/event.lua b/event.lua index 779752a..76b238a 100644 --- a/event.lua +++ b/event.lua @@ -1,14 +1,14 @@ --- abstract.event -local input = require((...):match("^(.-abstract)%.")..".input") -local time = require((...):match("^(.-abstract)%.")..".time") -local scene = require((...):match("^(.-abstract)%.")..".scene") +-- ubiquitousse.event +local input = require((...):match("^(.-ubiquitousse)%.")..".input") +local time = require((...):match("^(.-ubiquitousse)%.")..".time") +local scene = require((...):match("^(.-ubiquitousse)%.")..".scene") --- The events: callback functions that will be called when something interesting occurs. -- Theses are expected to be redefined in the game. -- For backend writers: if they already contain code, then this code has to be called on each call. -- @usage -- in the game's code --- abstract.event.draw = function() --- abstract.draw.text(5, 5, "Hello world") +-- ubiquitousse.event.draw = function() +-- ubiquitousse.draw.text(5, 5, "Hello world") -- end return { --- Called each time the game loop is ran. Don't draw here. @@ -19,7 +19,7 @@ return { time.update(dt) scene.update(dt) end, - + --- Called each time the game expect a new frame to be drawn. -- The screen is expected to be cleared since last frame. -- @impl backend diff --git a/init.lua b/init.lua index 5a9ef3c..4635694 100644 --- a/init.lua +++ b/init.lua @@ -1,4 +1,4 @@ --- abstract +-- ubiquitousse --- Abstract Engine. -- Main module, containing the abstract things. @@ -50,9 +50,9 @@ -- @usage local abstract = require("abstract") local p = ... -- require path -local abstract +local ubiquitousse -abstract = { +ubiquitousse = { --- Abstract version. -- @impl abstract version = "0.0.1", @@ -64,12 +64,12 @@ abstract = { } -- We're going to require modules requiring abstract, so to avoid stack overflows we already register the abstract package -package.loaded[p] = abstract +package.loaded[p] = ubiquitousse -- Require external submodules for _, m in ipairs({"time", "draw", "audio", "input", "scene", "event"}) do local s, t = pcall(require, p.."."..m) - if s then abstract[m] = t end + if s then ubiquitousse[m] = t end end -- Backend engine autodetect and load @@ -79,4 +79,4 @@ elseif package.loaded["ctr"] then require(p..".backend.ctrulua") end -return abstract +return ubiquitousse diff --git a/input.lua b/input.lua index b75e3c4..d4e1bc7 100644 --- a/input.lua +++ b/input.lua @@ -1,6 +1,6 @@ --- abstract.input -local abstract = require((...):match("^(.-abstract)%.")) -local draw = require((...):match("^(.-abstract)%.")..".draw") +-- ubiquitousse.input +local uqt = require((...):match("^(.-ubiquitousse)%.")) +local draw = require((...):match("^(.-ubiquitousse)%.")..".draw") --- Used to store inputs which were updated this frame -- { Input: true, ... } @@ -251,11 +251,11 @@ input = { if mode == "relative" then local movX, movY = math.abs(xAxis:value()), math.abs(yAxis:value()) if movX > maxMovX then - newX = x + (xSpeed and (xAxis:value() * xSpeed * abstract.time.dt) or xAxis:raw()) + newX = x + (xSpeed and (xAxis:value() * xSpeed * uqt.time.dt) or xAxis:raw()) maxMovX = movX end if movY > maxMovY then - newY = y + (ySpeed and (yAxis:value() * ySpeed * abstract.time.dt) or yAxis:raw()) + newY = y + (ySpeed and (yAxis:value() * ySpeed * uqt.time.dt) or yAxis:raw()) maxMovY = movY end elseif mode == "absolute" then @@ -365,7 +365,7 @@ input = { }, --- Update all the Inputs. - -- Supposed to be called in abstract.event.update. + -- Supposed to be called in ubiquitousse.event.update. -- @tparam numder dt the delta-time -- @impl abstract update = function(dt) diff --git a/scene.lua b/scene.lua index 13ec62e..7bb335f 100644 --- a/scene.lua +++ b/scene.lua @@ -1,5 +1,5 @@ --- abstract.scene -local time = require((...):match("^(.-abstract)%.")..".time") +-- ubiquitousse.scene +local time = require((...):match("^(.-ubiquitousse)%.")..".time") --- Returns the file path of the given module name. local function getPath(modname) @@ -18,10 +18,10 @@ end --- Scene management. -- You can use use scenes to seperate the different states of your game: for example, a menu scene and a game scene. -- This module is fully implemented in abstract and is mostly a "recommended way" of organising an abstract-based game. --- However, you don't have to use this if you don't want to. abstract.scene handles all the differents abstract-states and +-- However, you don't have to use this if you don't want to. ubiquitousse.scene handles all the differents abstract-states and -- make them scene-independent, for example by creating a scene-specific TimerRegistry (TimedFunctions that are keept accross -- states are generally a bad idea). Theses scene-specific states should be created and available in the table returned by --- abstract.scene.new. +-- ubiquitousse.scene.new. -- Currently, the implementation always execute a scene's file before setting it as current, but this may change in the future or -- for some implementations (e.g., on a computer where memory isn't a problem, the scene may be put in a cache). The result of this -- is that you can load assets, libraries, etc. outside of the enter callback, so they can be cached and not reloaded each time @@ -29,11 +29,11 @@ end -- each enter otherwise. -- The expected code-organisation is: -- * each scene is in a file, identified by its module name (same identifier used by Lua's require) --- * each scene file create a new scene table using abstract.scene.new and returns it at the end of the file +-- * each scene file create a new scene table using ubiquitousse.scene.new and returns it at the end of the file -- Order of callbacks: --- * all scene exit callbacks are called before changing the stack or the current scene (ie, abstract.scene.current and the +-- * all scene exit callbacks are called before changing the stack or the current scene (ie, ubiquitousse.scene.current and the -- last stack element is the scene in which the exit or suspend function was called) --- * all scene enter callbacks are called before changing the stack or the current scene (ie, abstract.scene.current and the +-- * all scene enter callbacks are called before changing the stack or the current scene (ie, ubiquitousse.scene.current and the -- last stack element is the previous scene which was just exited, and not the new scene) local scene scene = { @@ -61,8 +61,8 @@ scene = { suspend = function() end, -- Called when suspending a scene, and expecting to come back (scene won't be unloaded). resume = function() end, -- Called when resuming a suspended scene (after calling suspend). - update = function(dt, ...) end, -- Called on each abstract.event.update on the current scene. - draw = function(...) end -- Called on each abstract.event.draw on the current scene. + update = function(dt, ...) end, -- Called on each ubiquitousse.event.update on the current scene. + draw = function(...) end -- Called on each ubiquitousse.event.draw on the current scene. } end, @@ -81,8 +81,8 @@ scene = { end, --- Push a new scene to the scene stack. - -- Similar to abstract.scene.switch, except suspend is called on the current scene instead of exit, - -- and the current scene is not replaced: when the new scene call abstract.scene.pop, the old scene + -- Similar to ubiquitousse.scene.switch, except suspend is called on the current scene instead of exit, + -- and the current scene is not replaced: when the new scene call ubiquitousse.scene.pop, the old scene -- will be reused. -- @tparam string scenePath the new scene module name -- @param ... arguments to pass to the scene's enter function @@ -107,7 +107,7 @@ scene = { end, --- Update the current scene. - -- Should be called in abstract.event.update. + -- Should be called in ubiquitousse.event.update. -- @tparam number dt the delta-time (milisecond) -- @param ... arguments to pass to the scene's update function after dt -- @impl abstract @@ -119,7 +119,7 @@ scene = { end, --- Draw the current scene. - -- Should be called in abstract.event.draw. + -- Should be called in ubiquitousse.event.draw. -- @param ... arguments to pass to the scene's draw function -- @impl abstract draw = function(...) diff --git a/time.lua b/time.lua index f21dadc..0c72906 100644 --- a/time.lua +++ b/time.lua @@ -1,9 +1,9 @@ --- abstract.time -local ease = require((...):match("^(.-abstract)%.")..".lib.easing") +-- ubiquitousse.time +local ease = require((...):match("^(.-ubiquitousse)%.")..".lib.easing") --- Time related functions local function newTimerRegistry() - --- Used to store all the functions delayed with abstract.time.delay + --- Used to store all the functions delayed with ubiquitousse.time.delay -- The default implementation use the structure { = , ...} -- This table is for internal use and shouldn't be used from an external script. local delayed = {} @@ -14,9 +14,9 @@ local function newTimerRegistry() local registry registry = { --- Creates and return a new TimerRegistry. - -- A TimerRegistry is a separate abstract.time instance: its TimedFunctions will be independant - -- from the one registered using abstract.time.run (the global TimerRegistry). If you use the scene - -- system, a scene-specific TimerRegistry is available at abstract.scene.current.time. + -- A TimerRegistry is a separate ubiquitousse.time instance: its TimedFunctions will be independant + -- from the one registered using ubiquitousse.time.run (the global TimerRegistry). If you use the scene + -- system, a scene-specific TimerRegistry is available at ubiquitousse.scene.current.time. -- @impl abstract new = function() local new = newTimerRegistry() @@ -31,7 +31,7 @@ local function newTimerRegistry() get = function() end, --- Update all the TimedFunctions calls. - -- Supposed to be called in abstract.event.update. + -- Supposed to be called in ubiquitousse.event.update. -- @tparam[opt=calculate here] numder dt the delta-time (time spent since last time the function was called) (miliseconds) -- @impl abstract update = function(dt)