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); } } }