Tilt,Offset,以及谱面合并操作
This commit is contained in:
@@ -31,6 +31,7 @@ namespace Ichni
|
||||
public LoadManager loadManager;
|
||||
public ExportManager exportManager;
|
||||
public BeatmapClipManager beatmapClipManager;
|
||||
public BeatmapMergeManager beatmapMergeManager;
|
||||
public NotePrefabManager notePrefabManager;
|
||||
public AutoSaveManager autoSaveManager;
|
||||
|
||||
@@ -40,6 +41,7 @@ namespace Ichni
|
||||
loadManager = new LoadManager();
|
||||
exportManager = new ExportManager();
|
||||
beatmapClipManager = new BeatmapClipManager();
|
||||
beatmapMergeManager = new BeatmapMergeManager();
|
||||
notePrefabManager = new NotePrefabManager();
|
||||
autoSaveManager = new AutoSaveManager();
|
||||
}
|
||||
@@ -296,6 +298,57 @@ namespace Ichni
|
||||
}
|
||||
}
|
||||
|
||||
public class BeatmapMergeManager
|
||||
{
|
||||
public void MergeBeatmap(string mergeName)
|
||||
{
|
||||
string mergePath = Application.streamingAssetsPath + "/Merges/" + mergeName + ".json";
|
||||
BeatmapContainer_BM merge = ES3.Load<BeatmapContainer_BM>("Beatmap", mergePath, ProjectManager.SaveSettings);
|
||||
|
||||
merge.elementList.ForEach(element =>
|
||||
{
|
||||
if (element == null)
|
||||
{
|
||||
Debug.LogError("Null element detected in elementList. Skipping execution.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (BeatmapContainer_BM.LowPriorityGameElementTypes.Contains(element.GetType()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (element is GameElement_BM gameElement)
|
||||
{
|
||||
GameElement_BM.identifier.Add(gameElement.elementGuid, gameElement);
|
||||
}
|
||||
|
||||
if (element is GameCamera_BM || GameElement_BM.GetElementBM(element.attachedElementGuid) is GameCamera_BM)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
element.ExecuteBM();
|
||||
});
|
||||
|
||||
merge.elementList.ForEach(element =>
|
||||
{
|
||||
if (element == null)
|
||||
{
|
||||
Debug.LogError("Null element detected in elementList during low-priority execution. Skipping execution.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (BeatmapContainer_BM.LowPriorityGameElementTypes.Contains(element.GetType()))
|
||||
{
|
||||
element.ExecuteBM();
|
||||
}
|
||||
});
|
||||
|
||||
EditorManager.instance.beatmapContainer.ExecuteLowPriorityActions();
|
||||
}
|
||||
}
|
||||
|
||||
public class NotePrefabManager
|
||||
{
|
||||
private string notePrefabPath => Application.streamingAssetsPath + "/NotePrefabs";
|
||||
|
||||
Reference in New Issue
Block a user