using System.Collections; using System.Collections.Generic; using Dreamteck.Splines; using Unity.VisualScripting; using UnityEngine; namespace Ichni.RhythmGame { public class TrackRendererSubmodule : TrackSubmodule { public MeshGenerator meshGenerator; public MeshRenderer meshRenderer; public Material renderMaterial; public TrackRendererSubmodule(Track track) : base(track) { this.track = track; this.track.trackRendererSubmodule = this; } } public class TrackRendererSubmoduleAutoOrient : TrackRendererSubmodule { public SplineRenderer splineRenderer; public TrackRendererSubmoduleAutoOrient(Track track, Material material = null) : base(track) { this.splineRenderer = track.AddComponent(); this.meshRenderer = splineRenderer.GetComponent(); this.meshGenerator = splineRenderer; this.renderMaterial = material == null ? EditorManager.instance.basePrefabs.defaultTrackMaterial : material; this.splineRenderer.spline = track.trackPathSubmodule.path; this.splineRenderer.clipFrom = 0; this.splineRenderer.clipTo = 1; this.meshRenderer.material = renderMaterial; this.splineRenderer.color = Color.white; } public override void InitialRefresh() { if (track.trackTimeSubmodule is TrackTimeSubmoduleMovable) { splineRenderer.clipFrom = 0; splineRenderer.clipTo = 0; } } } }