Bring back difficulty metas for now

This commit is contained in:
Ralty
2025-08-10 05:16:16 +07:00
parent fe02ba7b4b
commit 9e4b6f31c0
+16 -7
View File
@@ -102,10 +102,17 @@ class Chart {
return data;
}
public static function loadChartMeta(songName:String, ?variant:String, fromMods:Bool = true, includeMetaVariations = true):ChartMetaData {
var defaultPath = Paths.file('songs/$songName/meta.json'), isVariant = false;
var data:ChartMetaData = null, paths = (variant == null || variant == '') ? [defaultPath] : [Paths.file('songs/$songName/meta-$variant.json'), defaultPath];
for (path in paths) if (Assets.exists(path)) {
public static function loadChartMeta(songName:String, ?variant:String, ?difficulty:String, fromMods:Bool = true, includeMetaVariations = true):ChartMetaData {
var folder = 'songs/$songName', isVariant = false, data:ChartMetaData = null;
var defaultPaths = [Paths.file('$folder/meta-$difficulty.json'), Paths.file('$folder/meta.json')], variantPaths = [];
if (difficulty != null) defaultPaths.unshift(Paths.file('$folder/meta-$difficulty.json'));
if (variant != null && variant != '') {
variantPaths.push(Paths.file('$folder/meta-$variant.json'));
if (difficulty != null) variantPaths.unshift(Paths.file('$folder/meta-$variant-$difficulty.json'));
}
for (path in variantPaths.concat(defaultPaths)) if (Assets.exists(path)) {
fromMods = Paths.assetsTree.existsSpecific(path, "TEXT", MODS);
try {
var tempData = Json.parse(Assets.getText(path));
@@ -114,7 +121,7 @@ class Chart {
} catch(e) Logs.trace('Failed to load song metadata for $songName ($path): ${Std.string(e)}', ERROR);
if (data != null) {
isVariant = path != defaultPath;
isVariant = variantPaths.contains(path);
break;
}
}
@@ -148,8 +155,10 @@ class Chart {
data.metas = [];
if (includeMetaVariations && data.variants.length > 0) for (variant in data.variants) {
if (!data.metas.exists(variant) && Assets.exists(Paths.file('songs/$songName/meta-$variant.json')))
data.metas.set(variant, loadChartMeta(songName, variant, fromMods));
if (!data.metas.exists(variant) && Assets.exists(Paths.file('songs/$songName/meta-$variant.json'))) {
var meta = loadChartMeta(songName, variant, fromMods)
if (meta.variant != null) data.metas.set(variant, meta);
}
}
return data;