mirror of
https://github.com/FunkinCrew/Funkin.git
synced 2024-11-14 19:25:16 -05:00
63 lines
1.4 KiB
Haxe
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;
|
|
}
|