diff --git a/concord/init.lua b/concord/init.lua index 2f13c55..2b9126a 100644 --- a/concord/init.lua +++ b/concord/init.lua @@ -2,6 +2,12 @@ local PATH = (...):gsub('%.init$', '') local Concord = {} +--- Initializes the library with some optional settings +-- @param settings Table of settings: { +-- useEvents Flag to overwrite love.run and use events. Defaults to false +-- } +-- @return Concord +} function Concord.init(settings) Concord.entity = require(PATH..".entity") Concord.component = require(PATH..".component") @@ -22,57 +28,7 @@ function Concord.init(settings) end end - love.run = function() - if love.math then - love.math.setRandomSeed(os.time()) - love.timer.step() - end - - for _, instance in ipairs(Concord.instances) do - instance:emit("load", arg) - end - - if love.timer then love.timer.step() end - - local dt = 0 - - return function() - if love.event then - love.event.pump() - for name, a, b, c, d, e, f in love.event.poll() do - for _, instance in ipairs(Concord.instances) do - instance:emit(name, a, b, c, d, e, f) - end - - if name == "quit" then - return a - end - end - end - - if love.timer then - love.timer.step() - dt = love.timer.getDelta() - end - - for _, instance in ipairs(Concord.instances) do - instance:emit("update", dt) - end - - if love.graphics and love.graphics.isActive() then - love.graphics.clear(love.graphics.getBackgroundColor()) - love.graphics.origin() - - for _, instance in ipairs(Concord.instances) do - instance:emit("draw") - end - - love.graphics.present() - end - - if love.timer then love.timer.sleep(0.001) end - end - end + love.run = require(PATH..".run") end return Concord