mirror of
https://github.com/ninjamuffin99/Funkin.git
synced 2024-11-30 18:53:35 +00:00
89 lines
1.9 KiB
Haxe
89 lines
1.9 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:Int;
|
|
var sections:Int;
|
|
var sectionLengths:Array<Dynamic>;
|
|
var needsVoices:Bool;
|
|
var speed:Float;
|
|
|
|
var player1:String;
|
|
var player2:String;
|
|
var validScore:Bool;
|
|
}
|
|
|
|
class Song
|
|
{
|
|
public var song:String;
|
|
public var notes:Array<SwagSection>;
|
|
public var bpm:Int;
|
|
public var sections:Int;
|
|
public var sectionLengths:Array<Dynamic> = [];
|
|
public var needsVoices:Bool = true;
|
|
public var speed:Float = 1;
|
|
|
|
public var player1:String = 'bf';
|
|
public var player2:String = 'dad';
|
|
|
|
public function new(song, notes, bpm, sections)
|
|
{
|
|
this.song = song;
|
|
this.notes = notes;
|
|
this.bpm = bpm;
|
|
this.sections = sections;
|
|
|
|
for (i in 0...notes.length)
|
|
{
|
|
this.sectionLengths.push(notes[i]);
|
|
}
|
|
}
|
|
|
|
public static function loadFromJson(jsonInput:String, ?folder:String):SwagSong
|
|
{
|
|
var rawJson = Assets.getText('assets/data/' + folder.toLowerCase() + '/' + jsonInput.toLowerCase() + '.json').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;
|
|
daSections = songData.sections;
|
|
daBpm = songData.bpm;
|
|
daSectionLengths = songData.sectionLengths; */
|
|
|
|
return parseJSONshit(rawJson);
|
|
}
|
|
|
|
public static function parseJSONshit(rawJson:String):SwagSong
|
|
{
|
|
var swagShit:SwagSong = cast Json.parse(rawJson).song;
|
|
swagShit.validScore = true;
|
|
return swagShit;
|
|
}
|
|
}
|