There have been quite a few things happening in Ashley during the past month, enough to call for a brand new release. Ashley 1.2.0 can now be fetched from Maven Central and this is what you'll find new.

  • API addition: people requested to put Entity#getComponent(Class) back in, so we accepted SgtCODFish‘s PR. ComponentMapper is still the most efficient and encouraged method to retrieve an entity's components.
  • API addition: added PooledEngine#clearPools() to delete unused entity and component pool memory.
  • API addition: adds EntitySystem#setProcessing(boolean) so as to be able to enable/disable systems at will.
  • API addition: adds Engine#getSystems().
  • API addition: you can now listen to entity events on a per family basis.
  • Crash fix: things would blow up if you deleted entities from IteratingSystem#processEntity().
  • Bug fix: removing listeners while dispatching a Signal would make other listeners miss the event. Thanks to vlaaad for the PR!
  • Bug fix: some entities were skipped if the user removed an entity from the engine mid system update. Removing an entity from a system by changing its components mid iteration also caused problems, which are now solved.
  • Bug fix: there was a problem with family membership not being properly updated when removing a component from an entity was supposed to result in said entity being added to the family. This only affected families that exclude components.
  • Internals: small performance improvement.
  • Others: added benchmark suite to compare Ashley's performance with Atermis'.

If you're using the nightly builds, please change your dependency to com.badlogicgames.ashley:ashley:1.2.1-SNAPSHOT. Both the wiki and the javadocs have been updated to reflect the latest changes.

Thanks to everyone using Ashley, opening issues and, of course, sending pull requests. I'm extremely pleased with the response, it's awesome to see how active things are.

Keep it up guys!