Ok, a few things:
All of those Strings should be MeshAnimations.The nice thing about our asset system is when defining a prefab and filling in an asset field, you can use the asset's uri - for example
Code:
{
"AnimationComponent" : {
"walkAnim" : "core:blobWalk"
}
}
And at runtime the asset will automatically be loaded and added to the entities created with the prefab.
ArrayList should be List<MeshAnimation> - best practice is not to use ArrayList (or other collection implementation classes) as a variable type, stick with the interface (so List<>). The entity serialization system will actually fail to handle ArrayList fields. Also, make sure to include the generic types, otherwise the serialization system won't know what the List contains - your IDE should complain about this anyway.
As for how animations should be applied... There's a few different approaches of varying complexity. Note that an AnimEndEvent is sent when an animation ends, so that can be hooked into. It would be a good idea to add a ChangeAnimationEvent to send to do the animation change.
There are basically two causes for animations - state (idle/walking/running/jumping/falling are based on the overall state of the character) and events (attack/die are triggered, play once and then stop). In theory you would actually combine animations (if you attack while walking, the character's legs should keep walking while the upper torso attacks) but we don't have support for this or tweening (fading between two animations) at the moment. Anyhow, you could certainly have a system that monitors state and changes animations as necessary, with events triggering the play of overriding animations.
There's no reason why animations would be specific to minions, as opposed to any character, but given the shakeup the character/player code is getting at the moment in the multiplayer branch it would probably be safest to do it that way at the moment.