1
0
Fork 0
mirror of https://github.com/ninjamuffin99/Funkin.git synced 2025-09-03 20:28:04 +00:00
Funkin/source/funkin/util/FramesJSFLParser.hx

68 lines
1.5 KiB
Haxe
Raw Permalink 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!
*/
@:nullSafety
2024-06-15 05:08:55 +00:00
class FramesJSFLParser
{
public static function parse(path:String):Null<FramesJSFLInfo>
2024-06-15 05:08:55 +00:00
{
var text:String = Assets.getText(path);
if (text == null)
{
trace('[ERROR] Could not load FramesJSFL data asset from path $path');
return null;
}
2024-06-15 05:08:55 +00:00
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
}