_World = {} World = {} function World.add(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