BU-CS673/bubolo — pull request #42 by ChristopherCanfield (2014-02-17 16:00:55+00:00)
Title: Graphics -> Production

A note on the tests:
- I've created an AllGraphicsTests suite. Running this should result in all graphics tests passing. The Coordinates tests are excluded from this, because they fail when included in the suite. They continue to pass when run with the rest of the unit tests, as before. So unless we can come up with a better way, we should run all unit tests, and then run the AllGraphicsTests suite on its own to verify that the graphics functionality works.

Changes
- The biggest changes involve the way entities, sprites and controllers are created. Callers will now call `Entities.create(Class)` to create an entity, add it to the world, create the relevant sprite, and create the relevant controller(s). For example, to create a new pillbox, a caller would call `Entities.create(Class.Pillbox)`. There are overloads for setting UUIDs and changing the default controllers. This should make creating new Entities and the related components simple, especially for the networking code (which is a driver of some of this complexity).
- Fixed all code that broke from these changes
- Added more tests, but also removed a number of tests that were no longer needed, since our system has been simplified (Entities no longer hold sprites, and do not need the `update`, `draw`, or `getSpriteId()` methods now, for example. This also needs no more waiting for concrete sprite types to be created before entities can be fully implemented, and no need to call `Sprite.create(this)`).
- Created new interface GameApplication, which extends Libgdx's ApplicationListener, and also provides an additional method (`isReady()`)
- See individual commits for more info