diff --git a/GlitchyEngine/src/World/AnimationComponent.bf b/GlitchyEngine/src/World/AnimationComponent.bf new file mode 100644 index 0000000..e656144 --- /dev/null +++ b/GlitchyEngine/src/World/AnimationComponent.bf @@ -0,0 +1,30 @@ +using GlitchyEngine.Renderer.Animation; + +namespace GlitchyEngine.World +{ + struct AnimationComponent : IDisposableComponent + { + private AnimationClip _animationClip; + + public AnimationClip AnimationClip + { + get => _animationClip; + set mut + { + if(_animationClip == value) + return; + + _animationClip?.ReleaseRef(); + _animationClip = value; + _animationClip?.AddRef(); + } + } + + public static void DisposeComponent(void* component) + { + Self* animationComponent = (Self*)component; + + animationComponent._animationClip?.ReleaseRef(); + } + } +}