using System; using System.Collections; using System.Collections.Generic; using Lean.Pool; using UnityEngine; namespace Ichni.RhythmGame { public partial class Track : BaseElement { public TrackPathSubmodule trackPathSubmodule; public TrackTimeSubmodule trackTimeSubmodule; public TrackRendererSubmodule trackRendererSubmodule; public static Track GenerateElement(string elementName, BaseElement parent, Vector3 position) { Track track = Instantiate(EditorManager.instance.basePrefabs.track, parent.transform).GetComponent(); track.Initialize(elementName); track.SetParent(parent); track.transformSubmodule = new TransformSubmodule(track, position, Vector3.zero, Vector3.one); track.timeDurationSubmodule = new TimeDurationSubmodule(track); track.trackPathSubmodule = null; track.trackTimeSubmodule = null; track.trackRendererSubmodule = null; track.SetTransformObserver(); return track; } public override void AfterInitialize() { } private void Update() { if (timeDurationSubmodule.CheckTimeInDuration(EditorManager.instance.songModule.songTime)) { (trackTimeSubmodule as TrackTimeSubmoduleMovable)?.UpdateTrackPart(); } } } public partial class Track { public override void Refresh() { } } public partial class Track { public enum TrackSpaceType { CatmullRom = 0, BSpline = 1, Linear = 3 } public enum TrackSamplingType { TimeDistributed = 0, DistanceDistributed = 1 } } }