1
0
Fork 0
mirror of https://github.com/ninjamuffin99/Funkin.git synced 2024-12-23 13:48:23 +00:00
Funkin/source/funkin/util/FramesJSFLParser.hx

64 lines
1.4 KiB
Haxe
Raw Normal View History

2024-06-15 05:08:55 +00:00
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]);
2024-09-09 06:23:46 +00:00
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]);
2024-09-09 15:41:25 +00:00
if (frameInfo[4] != null) scaleY = Std.parseFloat(frameInfo[4]);
2024-09-09 06:23:46 +00:00
var shit:FramesJSFLFrame =
{
x: x,
y: y,
alpha: alpha,
scaleX: scaleX,
scaleY: scaleY
};
2024-06-15 05:08:55 +00:00
output.frames.push(shit);
}
return output;
}
}
typedef FramesJSFLInfo =
{
var frames:Array<FramesJSFLFrame>;
}
typedef FramesJSFLFrame =
{
var x:Float;
var y:Float;
var alpha:Float;
2024-09-09 06:23:46 +00:00
var scaleX:Float;
var scaleY:Float;
2024-06-15 05:08:55 +00:00
}