no more body thingie

This commit is contained in:
Cameron Taylor 2021-08-29 15:56:46 -04:00
parent 9694defa8d
commit fad3af327f
3 changed files with 47 additions and 22 deletions

View file

@ -32,7 +32,7 @@ class AnimateTimeline extends FlxTypedGroup<FlxSprite>
super(); super();
hudCamShit = new FlxCamera(); hudCamShit = new FlxCamera();
hudCamShit.bgColor = null; hudCamShit.bgColor = FlxColor.TRANSPARENT;
FlxG.cameras.add(hudCamShit, false); FlxG.cameras.add(hudCamShit, false);
playhead = new FlxSprite(0, -12).makeGraphic(2, 10, FlxColor.MAGENTA); playhead = new FlxSprite(0, -12).makeGraphic(2, 10, FlxColor.MAGENTA);

View file

@ -10,6 +10,9 @@ import flixel.math.FlxPoint;
import flixel.math.FlxRect; import flixel.math.FlxRect;
import flixel.system.FlxAssets.FlxGraphicAsset; import flixel.system.FlxAssets.FlxGraphicAsset;
import haxe.Json; import haxe.Json;
import haxe.Utf8;
import haxe.format.JsonParser;
import lime.text.UTF8String;
import openfl.Assets; import openfl.Assets;
import openfl.display.BitmapData; import openfl.display.BitmapData;
import openfl.geom.Rectangle; import openfl.geom.Rectangle;
@ -37,7 +40,8 @@ class FlxAnimate extends FlxSymbol
override function draw() override function draw()
{ {
super.draw(); // having this commented out fixes some wacky scaling bullshit?
// super.draw();
if (FlxG.keys.justPressed.ONE) if (FlxG.keys.justPressed.ONE)
{ {
@ -116,10 +120,13 @@ class FlxAnimate extends FlxSymbol
trace(json); trace(json);
var funnyJson:Dynamic = {};
if (Assets.exists(json)) if (Assets.exists(json))
json = Assets.getText(json); funnyJson = JaySon.parseFile(json);
data = cast Json.parse(json).ATLAS; // trace(json);
data = cast funnyJson.ATLAS;
for (sprite in data.SPRITES) for (sprite in data.SPRITES)
{ {
@ -140,6 +147,24 @@ class FlxAnimate extends FlxSymbol
} }
} }
/**
* HL json encoding fix for some wacky bullshit
* https://github.com/HaxeFoundation/haxe/issues/6930#issuecomment-384570392
*/
class JaySon
{
public static function parseFile(name:String)
{
var cont = Assets.getText(name);
function is(n:Int, what:Int)
return cont.charCodeAt(n) == what;
return JsonParser.parse(cont.substr(if (is(0, 65279)) /// looks like a HL target, skipping only first character here:
1 else if (is(0, 239) && is(1, 187) && is(2, 191)) /// it seems to be Neko or PHP, start from position 3:
3 else /// all other targets, that prepare the UTF string correctly
0));
}
}
typedef AnimateObject = typedef AnimateObject =
{ {
SPRITES:Array<Dynamic> SPRITES:Array<Dynamic>

View file

@ -99,24 +99,24 @@ class FlxSymbol extends FlxSprite
// newFrameNum = newFrameNum % (tempFrame.I + tempFrame.DU); // newFrameNum = newFrameNum % (tempFrame.I + tempFrame.DU);
// newFrameNum = FlxMath.wrap(newFrameNum, tempFrame.I, tempFrame.I + tempFrame.DU); // newFrameNum = FlxMath.wrap(newFrameNum, tempFrame.I, tempFrame.I + tempFrame.DU);
trace(newFrameNum % keyFrames.length); // trace(newFrameNum % keyFrames.length);
trace(newFrameNum); // trace(newFrameNum);
trace(keyFrames); // trace(keyFrames);
newFrameNum = keyFrames[newFrameNum % keyFrames.length]; // temp, fix later for good looping newFrameNum = keyFrames[newFrameNum % keyFrames.length]; // temp, fix later for good looping
case PLAY_ONCE: case PLAY_ONCE:
trace(newFrameNum); // trace(newFrameNum);
trace(keyFrames.length - 1); // trace(keyFrames.length - 1);
trace(keyFrameMap.get(newFrameNum + firstFrame)); // trace(keyFrameMap.get(newFrameNum + firstFrame));
trace(keyFrameMap.get(keyFrames[keyFrames.length - 1])); // trace(keyFrameMap.get(keyFrames[keyFrames.length - 1]));
trace(layer.LN); // trace(layer.LN);
trace(keyFrames); // trace(keyFrames);
newFrameNum = Std.int(Math.min(newFrameNum + firstFrame, keyFrames.length - 1)); newFrameNum = Std.int(Math.min(newFrameNum + firstFrame, keyFrames.length - 1));
case SINGLE_FRAME: case SINGLE_FRAME:
trace(layer); // trace(layer);
trace(firstFrame); // trace(firstFrame);
trace(newFrameNum); // trace(newFrameNum);
trace(layer.LN); // trace(layer.LN);
trace(keyFrames); // trace(keyFrames);
newFrameNum = keyFrames[firstFrame]; newFrameNum = keyFrames[firstFrame];
} }
@ -134,7 +134,7 @@ class FlxSymbol extends FlxSprite
// if (newFrameNum >= frame.I && newFrameNum < frame.I + frame.DU) // if (newFrameNum >= frame.I && newFrameNum < frame.I + frame.DU)
// { // {
trace(daLoopType); // trace(daLoopType);
for (element in swagFrame.E) for (element in swagFrame.E)
{ {
if (Reflect.hasField(element, 'ASI')) if (Reflect.hasField(element, 'ASI'))
@ -143,6 +143,7 @@ class FlxSymbol extends FlxSprite
var dumbassMatrix:Matrix = new Matrix(m3d[0], m3d[1], m3d[4], m3d[5], m3d[12], m3d[13]); var dumbassMatrix:Matrix = new Matrix(m3d[0], m3d[1], m3d[4], m3d[5], m3d[12], m3d[13]);
var spr:FlxSymbol = new FlxSymbol(0, 0, coolParsed); var spr:FlxSymbol = new FlxSymbol(0, 0, coolParsed);
spr.setPosition(x, y);
matrixExposed = true; matrixExposed = true;
spr.frames = frames; spr.frames = frames;
spr.frame = spr.frames.getByName(element.ASI.N); spr.frame = spr.frames.getByName(element.ASI.N);
@ -159,8 +160,7 @@ class FlxSymbol extends FlxSprite
// spr.origin.x += origin.x; // spr.origin.x += origin.x;
// spr.origin.y += origin.y; // spr.origin.y += origin.y;
spr.antialiasing = true; // spr.antialiasing = true;
// if (layer.LN != 'head')
spr.draw(); spr.draw();
if (FlxG.keys.justPressed.ONE) if (FlxG.keys.justPressed.ONE)
@ -171,7 +171,7 @@ class FlxSymbol extends FlxSprite
else else
{ {
var nestedSymbol = symbolMap.get(element.SI.SN); var nestedSymbol = symbolMap.get(element.SI.SN);
var nestedShit:FlxSymbol = new FlxSymbol(0, 0, coolParse); var nestedShit:FlxSymbol = new FlxSymbol(x, y, coolParse);
nestedShit.frames = frames; nestedShit.frames = frames;
var swagMatrix:FlxMatrix = new FlxMatrix(element.SI.M3D[0], element.SI.M3D[1], element.SI.M3D[4], element.SI.M3D[5], element.SI.M3D[12], var swagMatrix:FlxMatrix = new FlxMatrix(element.SI.M3D[0], element.SI.M3D[1], element.SI.M3D[4], element.SI.M3D[5], element.SI.M3D[12],