diff options
author | sanine <sanine.not@pm.me> | 2023-04-15 01:56:14 -0500 |
---|---|---|
committer | sanine <sanine.not@pm.me> | 2023-04-15 01:56:14 -0500 |
commit | e603997055259039cefcdceaece5604e3856e36d (patch) | |
tree | f09e2c8984b0e61438ac9f407fe9f8ab0b91fd9c /honey/ecs.lua | |
parent | f41a96c6669354ae49b6b5e42830d010571f8a36 (diff) |
fix circular reference bug for physics objects
Diffstat (limited to 'honey/ecs.lua')
-rw-r--r-- | honey/ecs.lua | 56 |
1 files changed, 3 insertions, 53 deletions
diff --git a/honey/ecs.lua b/honey/ecs.lua index d544a37..260c389 100644 --- a/honey/ecs.lua +++ b/honey/ecs.lua @@ -77,11 +77,13 @@ end -- load database from file function EntityDb.load(self, filename) + print(collectgarbage("count")) self.entities = {} self.components = {} + collectgarbage() + print(collectgarbage("count")) local env = { Entity = function(id, components) - print("add entity:", id) self:createEntity(id) self:addComponents(id, components) end, @@ -261,56 +263,4 @@ function SystemDb.removeSystem(self, id) end ---===== Database =====-- - -Database = {} -Database.__index = Database - -function Database.new(_) - local self = {} - self.entityDb = EntityDb() - self.systemDb = SystemDb(self.entityDb) - setmetatable(self, Database) - return self -end -setmetatable(Database, {__call=Database.new}) - - -function Database.isValidEntity(self, id) - return self.entityDb:checkIsValid(id) -end -function Database.createEntity(self, id) - return self.entityDb:createEntity(id) -end -function Database.addComponent(self, id, name, value) - return self.entityDb:addComponent(id, name, value) -end -function Database.queryComponent(self, name) - return self.entityDb:queryComponent(name) -end -function Database.queryEntity(self, id) - return self.entityDb:queryEntity(id) -end -function Database.getComponent(self, id, name) - return self.entityDb:getComponent(id, name) -end -function Database.removeComponent(self, id, name) - return self.entityDb:removeComponent(id, name) -end -function Database.deleteEntity(self, id) - return self.entityDb.deleteEntity(id) -end - - -function Database.addSystem(self, func, params) - return self.systemDb:addSystem(func, params) -end -function Database.update(self, dt) - return self.systemDb:update(dt) -end -function Database.removeSystem(self, id) - return self.systemDb:removeSystem(id) -end - - return module |