using System; using System.Collections; using System.Collections.Generic; using System.Linq; using Unity.Mathematics; using UnityEngine; using UnityEngine.Serialization; namespace Ichni.RhythmGame { public abstract class AnimationBase : GameElement, IHaveTimeDurationSubmodule { public GameElement animatedObject; public FlexibleReturnType animationReturnType; public TimeDurationSubmodule timeDurationSubmodule { get; set; } protected override void SetDefaultSubmodules() { timeDurationSubmodule = new TimeDurationSubmodule(this); submoduleList.Add(timeDurationSubmodule); } protected abstract void UpdateAnimation(float songTime); protected virtual void Update() { if (timeDurationSubmodule.CheckTimeInDuration(EditorManager.instance.songInformation.songTime)) { UpdateAnimation(EditorManager.instance.songInformation.songTime); } } } namespace Beatmap { public abstract class AnimationBase_BM : GameElement_BM { public AnimationBase_BM() { } public AnimationBase_BM(string elementName, Guid elementGuid, List tags, GameElement_BM attachedElement) : base(elementName, elementGuid, tags, attachedElement) { } } } }