Files
ichni_Creator_Studio/Assets/Scripts/Base/Manager/EditorManager.cs

91 lines
4.0 KiB
C#
Raw Normal View History

using System;
using System.Collections;
using System.Collections.Generic;
using Ichni.RhythmGame;
2025-02-07 10:49:26 -05:00
using Ichni.RhythmGame.Beatmap;
using Ichni.RhythmGame.ThemeBundles.Basic;
using Sirenix.OdinInspector;
using UnityEngine;
namespace Ichni
{
public class EditorManager : SerializedMonoBehaviour
{
public static EditorManager instance;
2025-02-02 08:34:54 -05:00
public SongModule songModule;
2025-02-02 08:34:54 -05:00
public NoteBase.NoteJudgeType currentJudgeType;
public BasePrefabsCollection basePrefabs;
2025-02-02 08:34:54 -05:00
public List<BaseElement> elementList = new List<BaseElement>();
2025-02-07 10:49:26 -05:00
public List<BaseElement_BM> elementList_BM = new List<BaseElement_BM>();
public List<Submodule_BM> submoduleList_BM = new List<Submodule_BM>();
private void Awake()
{
instance = this;
}
private void Start()
{
2025-02-02 08:34:54 -05:00
//currentJudgeType = NoteBase.NoteJudgeType.Perfect;
var f0 = ElementFolder.GenerateElement("Folder", Guid.NewGuid(), new List<string>(), null);
var dis0 = Displacement.GenerateElement("Displacement-0",Guid.NewGuid(), new List<string>(),f0,
new FlexibleFloat(),
new FlexibleFloat(new List<AnimatedFloat>(){new (0,2,0,10, AnimationCurveType.Linear)}),
new FlexibleFloat());
2025-02-02 08:34:54 -05:00
var t0 = Track.GenerateElement("Track", Guid.NewGuid(), new List<string>(), f0, Vector3.left * 5f);
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<string>(), t0,
new FlexibleFloat(new List<AnimatedFloat>() { new(0, 2, 0, 1, AnimationCurveType.OutQuad) }));
var tr0 = Trail.GenerateElement("Trail-0", Guid.NewGuid(), new List<string>(), pp0, 5);
// t0.trackRendererSubmodule = new TrackRendererSubmoduleAutoOrient(t0);
2025-02-07 00:37:50 -05:00
var p0 = PathNode.GenerateElement("PathNode-0", Guid.NewGuid(), new List<string>(), 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<string>(), t0);
p1.transformSubmodule = new TransformSubmodule(p1, new Vector3(5, -5, 10), Vector3.forward, Vector3.one);
p1.colorSubmodule = new ColorSubmodule(p1, Color.red);
2025-02-02 08:34:54 -05:00
var n0 = Tap.GenerateElement("Note-0", Guid.NewGuid(), new List<string>(), 1f, t0);
var n0v = BasicNoteVisual.GenerateElement("Note-0-V", Guid.NewGuid(), new List<string>(), "basic",
"BasicNoteTap3D", Vector3.zero, Vector3.zero, Vector3.one, n0);
2025-02-07 00:37:50 -05:00
elementList.ForEach(e =>
{
e.AfterInitialize();
e.Refresh();
});
2025-02-07 10:49:26 -05:00
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)));
ES3.Save<List<Submodule_BM>>("submoduleList", submoduleList_BM);
ES3.Save<List<BaseElement_BM>>("elementList", elementList_BM);
}
private void Update()
{
songModule.songTime += Time.deltaTime;
}
}
public class SongModule
{
public float songTime;
public float songBeat;
}
}