1
0
Fork 0
mirror of https://github.com/ninjamuffin99/Funkin.git synced 2024-09-11 20:57:20 +00:00

Fix an issue where the game would try and fail to load metadata for a newly created song in the Chart Editor.

This commit is contained in:
EliteMasterEric 2023-09-18 17:59:55 -04:00
parent 459a96a791
commit b56768d9b5
2 changed files with 18 additions and 8 deletions

View file

@ -203,30 +203,39 @@ class SongRegistry extends BaseRegistry<Song, SongMetadata>
return ScriptedSong.listScriptClasses(); return ScriptedSong.listScriptClasses();
} }
function loadEntryMetadataFile(id:String, variation:String = ''):BaseRegistry.JsonFile function loadEntryMetadataFile(id:String, variation:String = ''):Null<BaseRegistry.JsonFile>
{ {
var entryFilePath:String = Paths.json('$dataFilePath/$id/$id${variation == '' ? '' : '-$variation'}-metadata'); var entryFilePath:String = Paths.json('$dataFilePath/$id/$id${variation == '' ? '' : '-$variation'}-metadata');
var rawJson:String = openfl.Assets.getText(entryFilePath).trim(); if (!openfl.Assets.exists(entryFilePath)) return null;
var rawJson:Null<String> = openfl.Assets.getText(entryFilePath);
if (rawJson == null) return null;
rawJson = rawJson.trim();
return {fileName: entryFilePath, contents: rawJson}; return {fileName: entryFilePath, contents: rawJson};
} }
function loadMusicDataFile(id:String, variation:String = ''):BaseRegistry.JsonFile function loadMusicDataFile(id:String, variation:String = ''):Null<BaseRegistry.JsonFile>
{ {
var entryFilePath:String = Paths.file('music/$id/$id${variation == '' ? '' : '-$variation'}-metadata.json'); var entryFilePath:String = Paths.file('music/$id/$id${variation == '' ? '' : '-$variation'}-metadata.json');
var rawJson:String = openfl.Assets.getText(entryFilePath).trim(); if (!openfl.Assets.exists(entryFilePath)) return null;
var rawJson:String = openfl.Assets.getText(entryFilePath);
if (rawJson == null) return null;
rawJson = rawJson.trim();
return {fileName: entryFilePath, contents: rawJson}; return {fileName: entryFilePath, contents: rawJson};
} }
function loadEntryChartFile(id:String, variation:String = ''):BaseRegistry.JsonFile function loadEntryChartFile(id:String, variation:String = ''):Null<BaseRegistry.JsonFile>
{ {
var entryFilePath:String = Paths.json('$dataFilePath/$id/$id${variation == '' ? '' : '-$variation'}-chart'); var entryFilePath:String = Paths.json('$dataFilePath/$id/$id${variation == '' ? '' : '-$variation'}-chart');
var rawJson:String = openfl.Assets.getText(entryFilePath).trim(); if (!openfl.Assets.exists(entryFilePath)) return null;
var rawJson:String = openfl.Assets.getText(entryFilePath);
if (rawJson == null) return null;
rawJson = rawJson.trim();
return {fileName: entryFilePath, contents: rawJson}; return {fileName: entryFilePath, contents: rawJson};
} }
public function fetchEntryMetadataVersion(id:String, variation:String = ''):Null<thx.semver.Version> public function fetchEntryMetadataVersion(id:String, variation:String = ''):Null<thx.semver.Version>
{ {
var entryStr:String = loadEntryMetadataFile(id, variation).contents; var entryStr:Null<String> = loadEntryMetadataFile(id, variation)?.contents;
var entryVersion:thx.semver.Version = VersionUtil.getVersionFromJSON(entryStr); var entryVersion:thx.semver.Version = VersionUtil.getVersionFromJSON(entryStr);
return entryVersion; return entryVersion;
} }

View file

@ -51,8 +51,9 @@ class VersionUtil
* @param input The JSON string to parse. * @param input The JSON string to parse.
* @return The semantic version, or null if it could not be parsed. * @return The semantic version, or null if it could not be parsed.
*/ */
public static function getVersionFromJSON(input:String):Null<thx.semver.Version> public static function getVersionFromJSON(input:Null<String>):Null<thx.semver.Version>
{ {
if (input == null) return null;
var parsed = SerializerUtil.fromJSON(input); var parsed = SerializerUtil.fromJSON(input);
if (parsed == null) return null; if (parsed == null) return null;
if (parsed.version == null) return null; if (parsed.version == null) return null;