private void PlayAnimation(bool temp_anim, Sprite[] animation, float speed)
        {
            _current_time += Time.deltaTime;

            if (_current_time > speed)
            {
                _current_time = 0;
                ++_frame_index;

                if (_frame_index >= animation.Count())
                {
                    if (KillWhenDone)
                    {
                        Destroy(gameObject);
                        return;
                    }

                    _frame_index = 0;

                    if (temp_anim)
                    {
                        _current_temp_animation = null;
                        animation = _current_base_animation;
                    }
                }

                _sprite_renderer.sprite = animation[_frame_index];
            }
        }