using System; using System.Collections; using System.Collections.Generic; using Ichni.RhythmGame; using Ichni.RhythmGame.Beatmap; using Ichni.RhythmGame.ThemeBundles.Basic; using Sirenix.OdinInspector; using UnityEngine; namespace Ichni { public class EditorManager : SerializedMonoBehaviour { public static EditorManager instance; public SongModule songModule; public NoteBase.NoteJudgeType currentJudgeType; public BasePrefabsCollection basePrefabs; public List elementList = new List(); public List elementList_BM = new List(); public List submoduleList_BM = new List(); private void Awake() { instance = this; } private void Start() { //currentJudgeType = NoteBase.NoteJudgeType.Perfect; var f0 = ElementFolder.GenerateElement("Folder", Guid.NewGuid(), new List(), true, null); var dis0 = Displacement.GenerateElement("Displacement-0",Guid.NewGuid(), new List(),true, f0, new FlexibleFloat(), new FlexibleFloat(new List(){new (0,2,0,10, AnimationCurveType.Linear)}), new FlexibleFloat()); var t0 = Track.GenerateElement("Track", Guid.NewGuid(), new List(), true, f0); t0.trackPathSubmodule = new TrackPathSubmodule(t0, Track.TrackSpaceType.Linear, Track.TrackSamplingType.TimeDistributed, false); t0.trackTimeSubmodule = new TrackTimeSubmoduleMovable(t0, 0, 2, 1, AnimationCurveType.OutQuad); var pp0 = TrackPercentPoint.GenerateElement("TrackPercentPoint-0", Guid.NewGuid(), new List(), true, t0, new FlexibleFloat(new List() { new(0, 2, 0, 1, AnimationCurveType.OutQuad) })); var tr0 = Trail.GenerateElement("Trail-0", Guid.NewGuid(), new List(), true, pp0, 5); // t0.trackRendererSubmodule = new TrackRendererSubmoduleAutoOrient(t0); var p0 = PathNode.GenerateElement("PathNode-0", Guid.NewGuid(), new List(), true, t0); p0.transformSubmodule = new TransformSubmodule(p0, new Vector3(-5, 5, 10), Vector3.forward, Vector3.one); p0.colorSubmodule = new ColorSubmodule(p0, Color.white); var p1 = PathNode.GenerateElement("PathNode-1", Guid.NewGuid(), new List(), true, t0); p1.transformSubmodule = new TransformSubmodule(p1, new Vector3(5, -5, 10), Vector3.forward, Vector3.one); p1.colorSubmodule = new ColorSubmodule(p1, Color.red); var n0 = Tap.GenerateElement("Note-0", Guid.NewGuid(), new List(), true, t0, 1f); var n0v = BasicNoteVisual.GenerateElement("Note-0-V", Guid.NewGuid(), new List(), true, n0, "basic", "BasicNoteTap3D"); elementList.ForEach(e => { e.AfterInitialize(); e.Refresh(); }); elementList.ForEach(e => { e.SaveBM(); e.submoduleList.RemoveAll(s=>s == null); e.submoduleList.ForEach(s => s.SaveBM()); }); //Save elementList.ForEach(x => elementList_BM.Add(x.matchedBM)); elementList.ForEach(x => submoduleList_BM.AddRange(x.submoduleList.ConvertAll(s => s.matchedBM as Submodule_BM))); ES3.Save>("submoduleList", submoduleList_BM); ES3.Save>("elementList", elementList_BM); } private void Update() { songModule.songTime += Time.deltaTime; } } public class SongModule { public float songTime; public float songBeat; } }