KadeDeveloper 7c3b2860fc save
2021-08-11 21:18:47 -07:00

128 lines
2.8 KiB
Haxe

package;
import Section.SwagSection;
import haxe.Json;
import haxe.format.JsonParser;
import lime.utils.Assets;
using StringTools;
class Event
{
public var name:String;
public var position:Float;
public var value:Float;
public var type:String;
public function new(name:String,pos:Float,value:Float,type:String)
{
this.name = name;
this.position = pos;
this.value = value;
this.type = type;
}
}
typedef SwagSong =
{
var chartVersion:String;
var song:String;
var notes:Array<SwagSection>;
var eventObjects:Array<Event>;
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 chartVersion:String;
public var song:String;
public var notes:Array<SwagSection>;
public var bpm:Float;
public var needsVoices:Bool = true;
public var eventObjects:Array<Event>;
public var speed:Float = 1;
public var player1:String = 'bf';
public var player2:String = 'dad';
public var gfVersion:String = '';
public var noteStyle:String = '';
public var stage:String = '';
public function new(song, notes, bpm)
{
this.song = song;
this.notes = notes;
this.bpm = bpm;
}
public static function loadFromJsonRAW(rawJson:String)
{
while (!rawJson.endsWith("}"))
{
rawJson = rawJson.substr(0, rawJson.length - 1);
// LOL GOING THROUGH THE BULLSHIT TO CLEAN IDK WHATS STRANGE
}
return parseJSONshit(rawJson);
}
public static function loadFromJson(jsonInput:String, ?folder:String):SwagSong
{
// pre lowercasing the folder name
var folderLowercase = StringTools.replace(folder, " ", "-").toLowerCase();
switch (folderLowercase) {
case 'dad-battle': folderLowercase = 'dadbattle';
case 'philly-nice': folderLowercase = 'philly';
}
trace('loading ' + folderLowercase + '/' + jsonInput.toLowerCase());
var rawJson = Assets.getText(Paths.json(folderLowercase + '/' + jsonInput.toLowerCase())).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;
// conversion stuff
return swagShit;
}
}