Make enabling/disabling Systems not use varargs.

This commit is contained in:
bakpakin 2015-05-03 23:28:18 +08:00
parent fb345c7718
commit 6d1b280a40
2 changed files with 14 additions and 16 deletions

View File

@ -139,14 +139,18 @@ describe('tiny-ecs:', function()
end)
it("Disable and Enable Systems", function()
world:deactivate(moveSystem, oneTimeSystem)
world:deactivate(moveSystem)
world:deactivate(oneTimeSystem)
world:update(1)
assert.equals(world:getSystemCount(), 2)
assert.equals(timePassed, 0)
assert.equals(entity1.xform.x, entityTemplate1.xform.x)
world:activate(moveSystem, oneTimeSystem)
world:activate(moveSystem)
world:activate(oneTimeSystem)
world:update(1)
assert.equals(timePassed, 1)
assert.are_not.equal(entity1.xform.x, entityTemplate1.xform.x)
assert.equals(world:getSystemCount(), 2)
end)
it("Clear Entities", function()

View File

@ -596,30 +596,24 @@ function tiny.setSystemIndex(world, system, index)
end
end
--- Activates Systems in the World.
--- Activate a System in the World.
-- Activated Systems will be update whenever tiny.update(world, dt) is called.
-- @param world
-- @param ... Systems to activate. The Systems must already be added to the
-- @param system System to activate. The System must already be added to the
-- World.
function tiny.activate(world, ...)
local args = {...}
for _, system in ipairs(args) do
world.systems[world.systemIndices[system]].active = true
end
function tiny.activate(world, system)
world.systems[world.systemIndices[system]].active = true
end
--- Deactivates Systems in the World.
--- Deactivates a System in the World.
-- Deactivated Systems must be update manually, and will not update when the
-- rest of World updates. They will, however, process new Entities added while
-- the System is deactivated.
-- @param world
-- @param ... Systems to deactivate. The Systems must already be added to the
-- @param system System to deactivate. The System must already be added to the
-- World.
function tiny.deactivate(world, ...)
local args = {...}
for _, system in ipairs(args) do
world.systems[world.systemIndices[system]].active = false
end
function tiny.deactivate(world, system)
world.systems[world.systemIndices[system]].active = false
end
return tiny