diff --git a/spec/tiny_spec.lua b/spec/tiny_spec.lua index 0363825..ea08dc3 100644 --- a/spec/tiny_spec.lua +++ b/spec/tiny_spec.lua @@ -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() diff --git a/tiny.lua b/tiny.lua index f461fb4..a1fba64 100644 --- a/tiny.lua +++ b/tiny.lua @@ -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