diff options
-rw-r--r-- | world.lua | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -64,12 +64,13 @@ end function obj_proto:remove(ct) local c = assert(self:get(ct)) - for oc in obj:all_components() do - for d in ipairs(oc.deps) do + for oc in self:all_components() do + for _, d in ipairs(oc.deps) do assert(d[1] ~= ct, "dependency") end end - self.world:unreg_component(c) + self.world:registered(self, ct, false) + self.components[ct] = nil if c.disable then c:disable() end if c.remove then c:remove() end end |