mirror of
https://github.com/FunkinCrew/Funkin.git
synced 2025-02-17 04:11:23 -05:00
slowly fixing it up
This commit is contained in:
parent
720b428bcf
commit
84c2185027
3 changed files with 61 additions and 34 deletions
|
@ -23,10 +23,6 @@ class FlxAnimate extends FlxSymbol
|
|||
{
|
||||
// var myAnim:Animation;
|
||||
// var animBitmap:BitmapData;
|
||||
var loadedQueue:Bool = false;
|
||||
|
||||
var swagFrames:Array<BitmapData> = [];
|
||||
|
||||
var jsonAnim:AnimJson;
|
||||
|
||||
public function new(x:Float, y:Float)
|
||||
|
@ -39,6 +35,7 @@ class FlxAnimate extends FlxSymbol
|
|||
|
||||
jsonAnim = cast CoolUtil.coolJSON(Assets.getText(Paths.file('images/$folder/Animation.json')));
|
||||
ParseAnimate.generateSymbolmap(jsonAnim.SD.S);
|
||||
ParseAnimate.resetFrameList();
|
||||
ParseAnimate.parseTimeline(jsonAnim.AN.TL, 0, 0);
|
||||
|
||||
/* var folder:String = 'tightestBars';
|
||||
|
@ -64,43 +61,49 @@ class FlxAnimate extends FlxSymbol
|
|||
actualFrameRender();
|
||||
}
|
||||
|
||||
// fix render order of ALL layers!
|
||||
// seperate frameList into layers
|
||||
// go thru animate file to see how it should all be ordered
|
||||
|
||||
function actualFrameRender()
|
||||
{
|
||||
for (i in ParseAnimate.frameList)
|
||||
for (frameSorted in ParseAnimate.frameList)
|
||||
{
|
||||
var spr:FlxSymbol = new FlxSymbol(0, 0); // redo this to recycle from a list later
|
||||
spr.frames = frames;
|
||||
spr.frame = spr.frames.getByName(i);
|
||||
|
||||
if (FlxG.keys.justPressed.I)
|
||||
for (i in frameSorted)
|
||||
{
|
||||
trace('\n\n\nSPR OLD: ' + spr._matrix);
|
||||
}
|
||||
|
||||
ParseAnimate.matrixMap.get(i).reverse();
|
||||
|
||||
for (swagMatrix in ParseAnimate.matrixMap.get(i))
|
||||
{
|
||||
var alsoSwag:FlxMatrix = new FlxMatrix(swagMatrix[0], swagMatrix[1], swagMatrix[4], swagMatrix[5], swagMatrix[12], swagMatrix[13]);
|
||||
spr.matrixExposed = true;
|
||||
|
||||
spr.transformMatrix.concat(alsoSwag);
|
||||
var spr:FlxSymbol = new FlxSymbol(0, 0); // redo this to recycle from a list later
|
||||
spr.frames = frames;
|
||||
spr.frame = spr.frames.getByName(i);
|
||||
|
||||
if (FlxG.keys.justPressed.I)
|
||||
trace(ParseAnimate.theRoots.get(i) + ": " + i);
|
||||
|
||||
for (swagMatrix in ParseAnimate.matrixMap.get(i))
|
||||
{
|
||||
trace(i + ": " + swagMatrix);
|
||||
var alsoSwag:FlxMatrix = new FlxMatrix(swagMatrix[0], swagMatrix[1], swagMatrix[4], swagMatrix[5], swagMatrix[12], swagMatrix[13]);
|
||||
spr.matrixExposed = true;
|
||||
spr.transformMatrix.concat(alsoSwag);
|
||||
}
|
||||
|
||||
spr.alpha = 0.3;
|
||||
spr.origin.set();
|
||||
spr.antialiasing = true;
|
||||
// spr.alpha = 0.5;
|
||||
spr.draw();
|
||||
|
||||
/* if (i == "0225")
|
||||
{
|
||||
trace('FUNNY MATRIX!');
|
||||
trace(spr._matrix);
|
||||
trace("\n\n MATRIX MAP");
|
||||
for (m in ParseAnimate.matrixMap.get("0225"))
|
||||
{
|
||||
trace(m);
|
||||
}
|
||||
|
||||
trace('\n\n');
|
||||
}*/
|
||||
}
|
||||
|
||||
if (FlxG.keys.justPressed.I)
|
||||
{
|
||||
trace('SPR NEW: ' + spr._matrix);
|
||||
}
|
||||
|
||||
// trace('MATRIX ' + spr._matrix);
|
||||
// spr
|
||||
|
||||
spr.draw();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -49,6 +49,11 @@ class FlxSymbol extends FlxSprite
|
|||
|
||||
public var daFrame:Int = 0;
|
||||
|
||||
override function update(elapsed:Float)
|
||||
{
|
||||
super.update(elapsed);
|
||||
}
|
||||
|
||||
public var transformMatrix:Matrix = new Matrix();
|
||||
|
||||
function renderFrame(TL:Timeline, ?traceShit:Bool = false)
|
||||
|
|
|
@ -87,16 +87,22 @@ class ParseAnimate
|
|||
*/
|
||||
public static var depthTypeBeat:String = "";
|
||||
|
||||
public static var frameList:Array<String> = [];
|
||||
public static var frameList:Array<Array<String>> = [];
|
||||
public static var matrixMap:Map<String, Array<Array<Float>>> = new Map();
|
||||
public static var trpMap:Map<String, Array<Array<Float>>> = new Map();
|
||||
public static var theRoots:Map<String, String> = new Map();
|
||||
|
||||
// for loop stuf
|
||||
public static var matrixHelp:Array<Array<Float>> = [];
|
||||
public static var trpHelpIDK:Array<Array<Float>> = [];
|
||||
|
||||
public static function resetFrameList()
|
||||
{
|
||||
frameList = [];
|
||||
frameList.push([]);
|
||||
matrixMap.clear();
|
||||
theRoots.clear();
|
||||
trpMap.clear();
|
||||
}
|
||||
|
||||
public static function parseTimeline(TL:Timeline, tabbed:Int = 0, ?frameInput:Int)
|
||||
|
@ -132,11 +138,19 @@ class ParseAnimate
|
|||
{
|
||||
if (Reflect.hasField(element, "ASI"))
|
||||
{
|
||||
frameList.push(element.ASI.N);
|
||||
frameList[frameList.length - 1].push(element.ASI.N);
|
||||
matrixHelp.push(element.ASI.M3D);
|
||||
matrixMap.set(element.ASI.N, matrixHelp);
|
||||
|
||||
trpMap.set(element.ASI.N, trpHelpIDK);
|
||||
|
||||
// flips the matrix once?? I cant remember exactly why it needs to be flipped
|
||||
matrixMap.get(element.ASI.N).reverse();
|
||||
|
||||
matrixHelp = [];
|
||||
trpHelpIDK = [];
|
||||
|
||||
theRoots.set(element.ASI.N, depthTypeBeat);
|
||||
|
||||
depthTypeBeat = "";
|
||||
curLoopType = "";
|
||||
|
@ -144,12 +158,17 @@ class ParseAnimate
|
|||
else
|
||||
{
|
||||
matrixHelp.push(element.SI.M3D);
|
||||
trpHelpIDK.push([element.SI.TRP.x, element.SI.TRP.y]);
|
||||
depthTypeBeat += "->" + element.SI.SN;
|
||||
curLoopType = element.SI.LP;
|
||||
parseTimeline(symbolMap.get(element.SI.SN).TL, tabbed + 1, element.SI.FF);
|
||||
}
|
||||
}
|
||||
|
||||
frameList.push([]);
|
||||
}
|
||||
|
||||
frameList.reverse();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue