
'Dad Battle' is now called 'Dad Battle' in game and uses 'dadbattle' as files 'Philly' is now called 'Philly Nice' in game and uses 'philly' as files
99 lines
2.3 KiB
Haxe
99 lines
2.3 KiB
Haxe
package;
|
|
|
|
import Section.SwagSection;
|
|
import haxe.Json;
|
|
import haxe.format.JsonParser;
|
|
import lime.utils.Assets;
|
|
|
|
using StringTools;
|
|
|
|
typedef SwagSong =
|
|
{
|
|
var song:String;
|
|
var notes:Array<SwagSection>;
|
|
var bpm:Float;
|
|
var needsVoices:Bool;
|
|
var speed:Float;
|
|
|
|
var player1:String;
|
|
var player2:String;
|
|
var gfVersion:String;
|
|
var noteStyle:String;
|
|
var stage:String;
|
|
var validScore:Bool;
|
|
}
|
|
|
|
class Song
|
|
{
|
|
public var song:String;
|
|
public var notes:Array<SwagSection>;
|
|
public var bpm:Float;
|
|
public var needsVoices:Bool = true;
|
|
public var speed:Float = 1;
|
|
|
|
public var player1:String = 'bf';
|
|
public var player2:String = 'dad';
|
|
public var gfVersion:String = 'gf';
|
|
public var noteStyle:String = 'normal';
|
|
public var stage:String = 'stage';
|
|
|
|
public function new(song, notes, bpm)
|
|
{
|
|
this.song = song;
|
|
this.notes = notes;
|
|
this.bpm = bpm;
|
|
}
|
|
|
|
public static function loadFromJson(jsonInput:String, ?folder:String):SwagSong
|
|
{
|
|
trace(jsonInput);
|
|
// pre lowercasing the folder name
|
|
var folderLowercase = switch (folder)
|
|
{
|
|
case 'Dad Battle':
|
|
StringTools.replace(folder," ", "").toLowerCase();
|
|
case 'Philly Nice':
|
|
StringTools.replace(folder," Nice", "").toLowerCase();
|
|
default:
|
|
StringTools.replace(folder," ", "-").toLowerCase();
|
|
}
|
|
// pre lowercasing the jsonInput name
|
|
var jsonInputLowercase = folderLowercase + StringTools.replace(jsonInput,folder.toLowerCase(), "").toLowerCase();
|
|
|
|
trace('loading ' + folderLowercase + '/' + jsonInputLowercase);
|
|
|
|
var rawJson = Assets.getText(Paths.json(folderLowercase + '/' + jsonInputLowercase)).trim();
|
|
|
|
while (!rawJson.endsWith("}"))
|
|
{
|
|
rawJson = rawJson.substr(0, rawJson.length - 1);
|
|
// LOL GOING THROUGH THE BULLSHIT TO CLEAN IDK WHATS STRANGE
|
|
}
|
|
|
|
// FIX THE CASTING ON WINDOWS/NATIVE
|
|
// Windows???
|
|
// trace(songData);
|
|
|
|
// trace('LOADED FROM JSON: ' + songData.notes);
|
|
/*
|
|
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;
|
|
daBpm = songData.bpm; */
|
|
|
|
return parseJSONshit(rawJson);
|
|
}
|
|
|
|
public static function parseJSONshit(rawJson:String):SwagSong
|
|
{
|
|
var swagShit:SwagSong = cast Json.parse(rawJson).song;
|
|
swagShit.validScore = true;
|
|
return swagShit;
|
|
}
|
|
}
|