增加folder层面的QuickCopy

Signed-off-by: TRADER_FOER <lhf190@outlook.com>
This commit is contained in:
2026-07-25 00:17:04 +08:00
parent dd4d4e0e03
commit eb7110ea77
19 changed files with 548153 additions and 1676 deletions

View File

@@ -107,6 +107,7 @@ public class consoleOnMono : MonoBehaviour
yield return GenerateLegacyTrackSubmodules(stats);
yield return GenerateLegacyPathNodes(elements, stats);
yield return GenerateLegacyTrackPoints(elements, stats);
yield return GenerateLegacyEnvironmentObjects(elements, stats);
yield return GenerateLegacyNotes(elements, stats);
yield return GenerateLegacyNoteVisualOverrides(elements, stats);
yield return GenerateLegacyAnimations(elements, stats);
@@ -201,26 +202,6 @@ public class consoleOnMono : MonoBehaviour
}, stats);
break;
case "EnvironmentObject_BM":
Debug.Log($"[LegacyImport] Processing EnvironmentObject_BM: {GetElementName(node, "unnamed")}");
TryCreateLegacyElement(node, () =>
{
GameElement parent = GetLegacyParentOrAncestor(node) ?? CreateFallbackFolder();
if (!TryFindLegacyEnvironmentObject(node, out string themeBundleName, out string objectName))
{
return null;
}
EnvironmentObject environmentObject = EnvironmentObject.GenerateElement(
GetElementName(node, "Legacy Environment Object"),
CreateGuid(), new List<string>(), true, themeBundleName, objectName, parent,
GetBool(node, "isStatic", false));
ApplyLegacySubstantialObject(environmentObject, node);
Debug.Log($"[LegacyImport] EnvironmentObject_BM created: oldObject='{GetString(node, "objectName", "?")}', newObject='{themeBundleName}/{objectName}', parent='{parent.elementName}'");
return environmentObject;
}, stats);
break;
case "TimeTrackPoint_BM":
Debug.Log($"[LegacyImport] Processing TimeTrackPoint_BM as CrossTrackPoint: {GetElementName(node, "unnamed")}");
TryCreateLegacyElement(node, () =>
@@ -432,6 +413,46 @@ public class consoleOnMono : MonoBehaviour
Debug.Log($"[LegacyImport] TrackPoints summary: TrackPercentPoint={trackPercentPointCount}");
}
private IEnumerator GenerateLegacyEnvironmentObjects(JSONNode elements, LegacyImportStats stats)
{
int environmentObjectCount = 0;
for (int i = 0; i < elements.Count; i++)
{
JSONNode node = elements[i];
if (GetLegacyTypeName(node) != "EnvironmentObject_BM")
{
continue;
}
environmentObjectCount++;
Debug.Log($"[LegacyImport] Processing EnvironmentObject_BM: {GetElementName(node, "unnamed")}");
TryCreateLegacyElement(node, () =>
{
GameElement parent = GetLegacyParentOrAncestor(node) ?? CreateFallbackFolder();
if (!TryFindLegacyEnvironmentObject(node, out string themeBundleName, out string objectName))
{
return null;
}
EnvironmentObject environmentObject = EnvironmentObject.GenerateElement(
GetElementName(node, "Legacy Environment Object"),
CreateGuid(), new List<string>(), true, themeBundleName, objectName, parent,
GetBool(node, "isStatic", false));
ApplyLegacySubstantialObject(environmentObject, node);
Debug.Log($"[LegacyImport] EnvironmentObject_BM created: oldObject='{GetString(node, "objectName", "?")}', newObject='{themeBundleName}/{objectName}', parent='{parent.elementName}'");
return environmentObject;
}, stats);
if (i % ElementsPerFrame == 0)
{
yield return null;
}
}
Debug.Log($"[LegacyImport] EnvironmentObject summary: EnvironmentObject={environmentObjectCount}");
}
private IEnumerator GenerateLegacyNotes(JSONNode elements, LegacyImportStats stats)
{
int[] noteCounts = new int[4]; // 0=Tap, 1=Stay, 2=Hold, 3=unknown skipped