2020-10-13 08:07:04 +00:00
|
|
|
package;
|
|
|
|
|
2020-10-24 09:19:13 +00:00
|
|
|
import Section.SwagSection;
|
2020-10-13 08:07:04 +00:00
|
|
|
import haxe.Json;
|
2020-10-24 09:19:13 +00:00
|
|
|
import haxe.format.JsonParser;
|
2020-10-13 08:07:04 +00:00
|
|
|
import lime.utils.Assets;
|
|
|
|
|
2020-10-14 05:02:36 +00:00
|
|
|
using StringTools;
|
|
|
|
|
2020-10-24 09:19:13 +00:00
|
|
|
typedef SwagSong =
|
|
|
|
{
|
|
|
|
var song:String;
|
2021-11-29 20:26:45 +00:00
|
|
|
var notes:Array<Array<SwagSection>>;
|
2021-03-20 16:33:29 +00:00
|
|
|
var bpm:Float;
|
2020-10-24 09:19:13 +00:00
|
|
|
var needsVoices:Bool;
|
2021-09-20 17:21:25 +00:00
|
|
|
var voiceList:Array<String>;
|
2021-11-29 20:26:45 +00:00
|
|
|
var speed:Array<Float>;
|
2020-10-24 09:19:13 +00:00
|
|
|
|
|
|
|
var player1:String;
|
|
|
|
var player2:String;
|
2020-12-04 17:32:35 +00:00
|
|
|
var validScore:Bool;
|
2020-10-24 09:19:13 +00:00
|
|
|
}
|
|
|
|
|
2021-11-30 02:43:38 +00:00
|
|
|
class SongLoad
|
2020-10-13 08:07:04 +00:00
|
|
|
{
|
2021-11-30 18:22:42 +00:00
|
|
|
public static var curDiff(default, set):Int;
|
2021-11-30 03:12:18 +00:00
|
|
|
public static var curNotes:Array<SwagSection>;
|
|
|
|
public static var songData:SwagSong;
|
|
|
|
|
|
|
|
static function set_curDiff(val:Int):Int
|
|
|
|
{
|
|
|
|
// automatically changes the selected NOTES?
|
|
|
|
return val;
|
|
|
|
}
|
|
|
|
|
2020-11-01 01:11:14 +00:00
|
|
|
public static function loadFromJson(jsonInput:String, ?folder:String):SwagSong
|
2020-10-13 08:07:04 +00:00
|
|
|
{
|
2021-02-10 20:18:14 +00:00
|
|
|
var rawJson = Assets.getText(Paths.json(folder.toLowerCase() + '/' + jsonInput.toLowerCase())).trim();
|
2020-10-14 05:02:36 +00:00
|
|
|
|
|
|
|
while (!rawJson.endsWith("}"))
|
|
|
|
{
|
|
|
|
rawJson = rawJson.substr(0, rawJson.length - 1);
|
|
|
|
// LOL GOING THROUGH THE BULLSHIT TO CLEAN IDK WHATS STRANGE
|
|
|
|
}
|
|
|
|
|
2020-10-23 23:12:38 +00:00
|
|
|
// FIX THE CASTING ON WINDOWS/NATIVE
|
2020-10-24 09:19:13 +00:00
|
|
|
// Windows???
|
|
|
|
// trace(songData);
|
2020-10-13 08:07:04 +00:00
|
|
|
|
2020-10-19 02:18:06 +00:00
|
|
|
// trace('LOADED FROM JSON: ' + songData.notes);
|
2020-10-18 01:47:59 +00:00
|
|
|
/*
|
2020-10-23 23:12:38 +00:00
|
|
|
for (i in 0...songData.notes.length)
|
|
|
|
{
|
|
|
|
trace('LOADED FROM JSON: ' + songData.notes[i].sectionNotes);
|
|
|
|
// songData.notes[i].sectionNotes = songData.notes[i].sectionNotes
|
|
|
|
}
|
|
|
|
|
|
|
|
daNotes = songData.notes;
|
|
|
|
daSong = songData.song;
|
2021-02-11 22:06:26 +00:00
|
|
|
daBpm = songData.bpm; */
|
2020-10-13 08:07:04 +00:00
|
|
|
|
2020-12-25 09:09:14 +00:00
|
|
|
return parseJSONshit(rawJson);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static function parseJSONshit(rawJson:String):SwagSong
|
|
|
|
{
|
|
|
|
var swagShit:SwagSong = cast Json.parse(rawJson).song;
|
|
|
|
swagShit.validScore = true;
|
2021-11-30 03:12:18 +00:00
|
|
|
// swagShit.notes[0] = cast Json.parse(rawJson).song.notes[SongLoad.curDiff]; // by default uses
|
|
|
|
|
|
|
|
songData = swagShit;
|
|
|
|
|
2020-10-24 09:19:13 +00:00
|
|
|
return swagShit;
|
2020-10-13 08:07:04 +00:00
|
|
|
}
|
|
|
|
}
|