Version 1 of the license didn't make sense: it required a Spine license to use the Spine Runtimes at all. This means if you used the Spine Runtimes in your application, anyone who purchased a copy of your application also needed a Spine license to use the runtimes. This was not the intent!
Version 2 of the license fixes this by allowing anyone to use the Spine Runtimes but only for internal use. When you purchase Spine, the Spine license (http://esotericsoftware.com/spine/files/license.txt) grants you the right to make and distribute derivative works of the Spine Runtimes. Now it makes sense: making and distributing applications with the Spine Runtimes requires a Spine license, but anyone can run that software without needing a Spine license.
With this fixed, I hope we never need to change the license again!
Events are now fired from lastTime (exclusive) to time (inclusive). This allows an event at the end of an animation to be fired before the next animation starts. The "complete" callback will happen before the event though, because "complete" happens in update() and events are triggered in apply().
Note events are not fired for the previous animation during mixing (crossfading).
There are no longer separate animation files, they are now inside the skeleton file. This means there is just one file to manage, which is cleaner. Now that animations are stored in SkeletonData, they can be looked up by name which leads to cleaner runtime APIs.
cocos2d and cocos2d-x runtimes got a cleaner ObjC/C++ API.
*AnimationState.java
*AnimationStateTest.java
Updated:
*Git ignore to ignore all LibGDX libs.
*MixTest.Java -- Reverted back to LWJGL
*SkeletonTest.java -- Reverted back to LWJGL
A few Idea project files where added. I left these in for easy future development with
Intellij Idea.