public void Animate(bool hasMoved)
{
if (_activity != Backend.Activity.Walk)
{
if (_textures[(int)_activity * 8 + (int)Math.Log((double)direction, 2)].NextAnimation())
{
if (_activity != Backend.Activity.Die)
{
_parent.HandleEvent(false, Backend.Events.FinishedAnimation, _id, _activity);
this.activity = _playAfterMove;
if (_playAfterMove != Backend.Activity.Walk) _playAfterMove = Backend.Activity.Walk;
_lock = false;
_dead = false;
}
else
{
if (!_dead)
{
_parent.HandleEvent(false, Backend.Events.FinishedAnimation, _id, _activity);
_dead = true;
_lock = false;
}
}
}
}
else
{
if (hasMoved)
{
_textures[(int)_activity * 8 + (int)Math.Log((double)direction, 2)].NextAnimation();
}
}
}