diff options
Diffstat (limited to 'world.lua')
| -rw-r--r-- | world.lua | 27 |
1 files changed, 26 insertions, 1 deletions
@@ -1,5 +1,30 @@ +_World = {} World = {} + function World.add(entity) - World[entity.id] = entity + _World[entity.id] = entity return World +end + +function World.foreach(f) + for id, entity in pairs(_World) do + f(entity) + end +end + +function World.cull_the_dead() + to_reap = {} + for id, e in pairs(_World) do + if (e.life_time ~= nil and e.life_time <= 0) then + to_reap[id] = e + end + end + for id, e in pairs(to_reap) do + _World[id] = nil + end + return _World +end + +function World.get(id) + return _World[id] end
\ No newline at end of file |
