Streamline entity lifetime

This commit is contained in:
Tjakka5 2019-12-19 08:47:38 +01:00
parent bc47eaa651
commit 038111d558
7 changed files with 117 additions and 163 deletions

View file

@ -22,20 +22,49 @@ local test_comp_3 = Concord.component("test_comp_3", function(e, b)
end)
local test_system = Concord.system({Component.test_comp_1})
function test_system:update(dt)
print(#self.pool)
function onEntityAdded(e)
print("Added")
end
function onEntityRemoved(e)
print("Removed")
end
function test_system:init()
self.pool.onEntityAdded = onEntityAdded
self.pool.onEntityRemoved = onEntityRemoved
end
function test_system:update(dt)
--print(#self.pool)
end
local world = Concord.world()
local entity = Concord.entity()
entity:give(Component.test_comp_2, 100, 100)
entity:apply()
entity:give(Component.test_comp_1, 100, 100)
world:addEntity(entity)
world:addSystem(test_system(), "update")
function love.update(dt)
world:flush()
world:emit("update", dt)
end
function love.keypressed(key)
if key == "q" then
entity:remove(Component.test_comp_1)
end
if key == "w" then
entity:give(Component.test_comp_1)
end
if key == "e" then
world:removeEntity(entity)
end
end