mirror of
https://github.com/Keyslam-Group/Concord.git
synced 2025-09-02 12:24:11 -04:00
Fixed a small removal issue
This commit is contained in:
parent
404a6b1c6b
commit
acc5830cc6
2 changed files with 14 additions and 10 deletions
|
@ -16,6 +16,7 @@ function Instance.new()
|
||||||
systems = List(),
|
systems = List(),
|
||||||
events = {},
|
events = {},
|
||||||
removed = {},
|
removed = {},
|
||||||
|
toRemove = nil,
|
||||||
|
|
||||||
__isInstance = true,
|
__isInstance = true,
|
||||||
}, Instance)
|
}, Instance)
|
||||||
|
@ -69,9 +70,12 @@ end
|
||||||
--- Completely removes all marked Entities in the Instance.
|
--- Completely removes all marked Entities in the Instance.
|
||||||
-- @return self
|
-- @return self
|
||||||
function Instance:flush()
|
function Instance:flush()
|
||||||
if #self.removed > 0 then
|
self.toRemove = self.removed
|
||||||
for i = 1, #self.removed do
|
self.removed = {}
|
||||||
local e = self.removed[i]
|
|
||||||
|
if #self.toRemove > 0 then
|
||||||
|
for i = 1, #self.toRemove do
|
||||||
|
local e = self.toRemove[i]
|
||||||
|
|
||||||
e.instances:remove(self)
|
e.instances:remove(self)
|
||||||
self.entities:remove(e)
|
self.entities:remove(e)
|
||||||
|
@ -80,8 +84,6 @@ function Instance:flush()
|
||||||
self.systems:get(i):__remove(e)
|
self.systems:get(i):__remove(e)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
self.removed = {}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return self
|
return self
|
||||||
|
@ -218,6 +220,8 @@ function Instance:clear()
|
||||||
self.entities:get(i):destroy()
|
self.entities:get(i):destroy()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
self:flush()
|
||||||
|
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue