Funkin/source/funkin/util/FramesJSFLParser.hx
2024-09-09 17:41:25 +02:00

63 lines
1.4 KiB
Haxe

package funkin.util;
import openfl.Assets;
/**
* See `funScripts/jsfl/frames.jsfl` for more information in the art repo/folder!
* Homemade dipshit proprietary format to get simple animation info out of flash!
* Pure convienience!
*/
class FramesJSFLParser
{
public static function parse(path:String):FramesJSFLInfo
{
var text:String = Assets.getText(path);
// TODO: error handle if text is null
var output:FramesJSFLInfo = {frames: []};
var frames:Array<String> = text.split("\n");
for (frame in frames)
{
var frameInfo:Array<String> = frame.split(" ");
var x:Float = Std.parseFloat(frameInfo[0]);
var y:Float = Std.parseFloat(frameInfo[1]);
var alpha:Float = (frameInfo[2] != "undefined") ? Std.parseFloat(frameInfo[2]) : 100;
var scaleX:Float = 1;
var scaleY:Float = 1;
if (frameInfo[3] != null) scaleX = Std.parseFloat(frameInfo[4]);
if (frameInfo[4] != null) scaleY = Std.parseFloat(frameInfo[4]);
var shit:FramesJSFLFrame =
{
x: x,
y: y,
alpha: alpha,
scaleX: scaleX,
scaleY: scaleY
};
output.frames.push(shit);
}
return output;
}
}
typedef FramesJSFLInfo =
{
var frames:Array<FramesJSFLFrame>;
}
typedef FramesJSFLFrame =
{
var x:Float;
var y:Float;
var alpha:Float;
var scaleX:Float;
var scaleY:Float;
}