mirror of
https://github.com/Keyslam-Group/Concord.git
synced 2025-09-02 04:13:58 -04:00
Added Instance:onEntityAdded and :onEntityRemoved
This commit is contained in:
parent
294242814f
commit
d53a931c3a
1 changed files with 16 additions and 2 deletions
|
@ -32,6 +32,8 @@ function Instance:addEntity(e)
|
||||||
error("bad argument #1 to 'Instance:addEntity' (Entity expected, got "..type(e)..")", 2)
|
error("bad argument #1 to 'Instance:addEntity' (Entity expected, got "..type(e)..")", 2)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
self:onEntityAdded(e)
|
||||||
|
|
||||||
e.instances:add(self)
|
e.instances:add(self)
|
||||||
self.entities:add(e)
|
self.entities:add(e)
|
||||||
self:checkEntity(e)
|
self:checkEntity(e)
|
||||||
|
@ -83,6 +85,8 @@ function Instance:flush()
|
||||||
for i = 1, self.systems.size do
|
for i = 1, self.systems.size do
|
||||||
self.systems:get(i):__remove(e)
|
self.systems:get(i):__remove(e)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
self:onEntityRemoved(e)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -210,7 +214,7 @@ function Instance:emit(eventName, ...)
|
||||||
end
|
end
|
||||||
|
|
||||||
self:flush()
|
self:flush()
|
||||||
|
|
||||||
local listeners = self.events[eventName]
|
local listeners = self.events[eventName]
|
||||||
|
|
||||||
if listeners then
|
if listeners then
|
||||||
|
@ -232,12 +236,22 @@ function Instance:clear()
|
||||||
for i = 1, self.entities.size do
|
for i = 1, self.entities.size do
|
||||||
self.entities:get(i):destroy()
|
self.entities:get(i):destroy()
|
||||||
end
|
end
|
||||||
|
|
||||||
self:flush()
|
self:flush()
|
||||||
|
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Default callback for adding an Entity.
|
||||||
|
-- @param e The Entity that was added
|
||||||
|
function Instance:onEntityAdded(e)
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Default callback for removing an Entity.
|
||||||
|
-- @param e The Entity that was removed
|
||||||
|
function Instance:onEntityRemoved(e)
|
||||||
|
end
|
||||||
|
|
||||||
return setmetatable(Instance, {
|
return setmetatable(Instance, {
|
||||||
__call = function(_, ...) return Instance.new(...) end,
|
__call = function(_, ...) return Instance.new(...) end,
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue