private void ActivateAnimation(ISpriteComponent spriteComponent, AnimationPlayerComponent animationPlayer, string key)
        {
            if (!_animations.TryGetValue(key, out var animation))
            {
                return;
            }

            if (!animationPlayer.HasRunningAnimation(key))
            {
                spriteComponent.LayerSetVisible(LayerMap[key], true);
                animationPlayer.Play(animation, key);
            }
        }
        protected override void Startup()
        {
            base.Startup();

            CopyLightSettings();
            _animationPlayer = Owner.EnsureComponent <AnimationPlayerComponent>();
            _animationPlayer.AnimationCompleted += s => OnAnimationCompleted(s);

            foreach (var container in _animations)
            {
                container.LightBehaviour.Initialize(_lightComponent);
            }

            // we need to initialize all behaviours before starting any
            foreach (var container in _animations)
            {
                if (container.LightBehaviour.Enabled)
                {
                    StartLightBehaviour(container.LightBehaviour.ID);
                }
            }
        }