ecs.fnl 340 B

1234567891011121314
  1. ; ECS provides system functions that can filter a collection
  2. ; of entity maps for a set of components (keys)
  3. (fn _has [e ks]
  4. (var res true)
  5. (each [_ n (ipairs ks)]
  6. (set res (and res (if (= (. e n) nil) false true))))
  7. (if res true false))
  8. (fn system [ks f]
  9. (fn [es]
  10. (each [_ e (ipairs es)]
  11. (if (_has e ks) (f e)))))