void UpdateEnemyAnimation(EnumData.EnemyState enemyState, FaceDirection faceDirection, EnemyDisplayData enemyDisplayData)
        {
            switch (enemyState)
            {
            case EnumData.EnemyState.Idle:
                break;

            case EnumData.EnemyState.Walking:
                UpdateDirectionSprite(enemyDisplayData.walkSprite, faceDirection);
                break;

            case EnumData.EnemyState.Petrified:
                currentAnimationSpriteGroup = enemyDisplayData.petrificationSprite;
                break;

            case EnumData.EnemyState.Pushed:
                break;

            case EnumData.EnemyState.PhysicsControlled:
                break;

            case EnumData.EnemyState.PrimaryMoveUse:
                UpdateDirectionSprite(enemyDisplayData.primaryMove, faceDirection);
                break;

            case EnumData.EnemyState.SecondaryMoveUse:
                UpdateDirectionSprite(enemyDisplayData.secondaryMove, faceDirection);
                break;
            }
        }
        private void UpdateSprite(EnumData.EnemyState enemyState, FaceDirection faceDirection)
        {
            switch (enemyType)
            {
            case EnumData.MonsterBreed.Cyclops:
                UpdateEnemyAnimation(enemyState, faceDirection, cyclopsEnemyDisplayData);
                break;

            case EnumData.MonsterBreed.Centaur:
                UpdateEnemyAnimation(enemyState, faceDirection, centaurEnemyDisplayData);
                break;

            case EnumData.MonsterBreed.Snakes:
                UpdateEnemyAnimation(enemyState, faceDirection, snakeEnemyDisplayData);
                break;

            case EnumData.MonsterBreed.Minotaur:
                UpdateEnemyAnimation(enemyState, faceDirection, minnataurEnemyDisplayData);
                break;

            case EnumData.MonsterBreed.ZeusHead:
                UpdateEnemyAnimation(enemyState, faceDirection, zeusHeadEnemyDisplayData);
                break;

            case EnumData.MonsterBreed.MirrorKnight:
                UpdateEnemyAnimation(enemyState, faceDirection, mirrorKnightEnemyDisplayData);
                break;
            }
        }
 void SetState(int enemyState, int faceDirection)
 {
     if (currentFaceDirection != (FaceDirection)faceDirection || currentEnemyState != (EnumData.EnemyState)enemyState)
     {
         UpdateSprite((EnumData.EnemyState)enemyState, (FaceDirection)faceDirection);
     }
     currentFaceDirection = (FaceDirection)faceDirection;
     currentEnemyState    = (EnumData.EnemyState)enemyState;
 }