Skip to content

Commit 9ab3059

Browse files
Removed flxanimate entirely + Fixed transition + Fixed offsets
1 parent 632c80b commit 9ab3059

File tree

6 files changed

+51
-15
lines changed

6 files changed

+51
-15
lines changed

building/libs.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
<!-- Other Libraries -->
1616
<git name="hscript-improved" url="https://github.com/CodenameCrew/hscript-improved" ref="codename-dev" />
17-
<git name="flxanimate" url="https://github.com/CodenameCrew/cne-flxanimate" />
1817
<git name="hxdiscord_rpc" url="https://github.com/CodenameCrew/cne-hxdiscord_rpc" skipDeps="true" />
1918
<lib name="funkin-modchart" version="1.2.4" skipDeps="true" />
2019
<lib name="hxvlc" version="1.9.3" skipDeps="true" />
@@ -33,7 +32,7 @@
3332

3433
<git name="hxcpp" url="https://github.com/CodenameCrew/cne-hxcpp" />
3534

36-
<git name="flixel-animate" url="https://github.com/MaybeMaru/flixel-animate/" ref="flixel-5.3.0" skipDeps="true"/>
35+
<git name="flixel-animate" url="https://github.com/MaybeMaru/flixel-animate/" skipDeps="true"/>
3736
</if>
3837

3938
<!-- Hxcpp Building -->

project.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,6 @@
130130
<haxelib name="hxvlc" if="VIDEO_CUTSCENES" />
131131
<haxelib name="away3d" if="THREE_D_SUPPORT" />
132132
<haxelib name="format" />
133-
<haxelib name="flxanimate" />
134133
<haxelib name="flixel-animate" />
135134
<haxelib name="nape-haxe4" if="NAPE_ENABLED"/>
136135

source/funkin/backend/FunkinSprite.hx

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ import funkin.backend.utils.XMLUtil.AnimData;
1616
import funkin.backend.utils.XMLUtil.BeatAnim;
1717
import funkin.backend.utils.XMLUtil.IXMLEvents;
1818
import haxe.io.Path;
19+
import flixel.graphics.frames.FlxFrame;
20+
import flixel.math.FlxAngle;
1921

2022
enum abstract XMLAnimType(Int)
2123
{
@@ -373,4 +375,46 @@ class FunkinSprite extends FlxAnimate implements IBeatReceiver implements IOffse
373375
animation.curAnim.curFrame = val;
374376
return val;
375377
}
378+
379+
override function drawComplex(camera:FlxCamera):Void
380+
{
381+
#if (flixel < "6.1.0") final frame = this._frame; #end
382+
final matrix = this._matrix; // TODO: Just use local?
383+
384+
frame.prepareMatrix(matrix, FlxFrameAngle.ANGLE_0, checkFlipX() != camera.flipX, checkFlipY() != camera.flipY);
385+
matrix.translate(-origin.x, -origin.y);
386+
387+
if (frameOffsetAngle != null && frameOffsetAngle != angle)
388+
{
389+
var angleOff = (frameOffsetAngle - angle) * FlxAngle.TO_RAD;
390+
var cos = Math.cos(angleOff);
391+
var sin = Math.sin(angleOff);
392+
// cos doesnt need to be negated
393+
_matrix.rotateWithTrig(cos, -sin);
394+
_matrix.translate(-frameOffset.x, -frameOffset.y);
395+
_matrix.rotateWithTrig(cos, sin);
396+
}
397+
else
398+
_matrix.translate(-frameOffset.x, -frameOffset.y);
399+
400+
matrix.scale(scale.x, scale.y);
401+
if (bakedRotationAngle <= 0)
402+
{
403+
updateTrig();
404+
if (angle != 0)
405+
matrix.rotateWithTrig(_cosAngle, _sinAngle);
406+
}
407+
if (skew.x != 0 || skew.y != 0)
408+
{
409+
updateSkew();
410+
_matrix.concat(FlxAnimate._skewMatrix);
411+
}
412+
getScreenPosition(_point, camera);
413+
_point.x += origin.x - offset.x;
414+
_point.y += origin.y - offset.y;
415+
matrix.translate(_point.x, _point.y);
416+
if (isPixelPerfectRender(camera))
417+
preparePixelPerfectMatrix(matrix);
418+
camera.drawPixels(frame, framePixels, matrix, colorTransform, blend, antialiasing, shader);
419+
}
376420
}

source/funkin/backend/utils/CoolUtil.hx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import flixel.util.FlxAxes;
2121
import flixel.util.FlxColor;
2222
import flixel.util.typeLimit.OneOfThree;
2323
import flixel.util.typeLimit.OneOfTwo;
24-
import flxanimate.data.AnimationData.AnimAtlas;
2524
import funkin.backend.system.Conductor;
2625
import funkin.backend.utils.XMLUtil.TextFormat;
2726
import haxe.CallStack;
@@ -34,6 +33,7 @@ import haxe.xml.Access;
3433
import lime.utils.Assets;
3534
import openfl.display.BitmapData;
3635
import openfl.geom.ColorTransform;
36+
import animate.FlxAnimateJson;
3737

3838
using StringTools;
3939

@@ -1252,13 +1252,13 @@ final class CoolUtil
12521252
return animsList;
12531253
}
12541254

1255-
public static function getAnimsListFromAtlas(atlas:AnimAtlas):Array<String> {
1255+
public static function getAnimsListFromAtlas(atlas:AnimationJson):Array<String> {
12561256
if (atlas == null) return [];
12571257

12581258
var animsList:Array<String> = [];
12591259
if (atlas.AN.SN != null) animsList.push(atlas.AN.SN);
12601260
if (atlas.SD != null)
1261-
for (symbol in atlas.SD.S)
1261+
for (symbol in atlas.SD)
12621262
if (symbol.SN != null) animsList.push(symbol.SN);
12631263

12641264
return animsList;

source/funkin/editors/character/CharacterAnimButton.hx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@ package funkin.editors.character;
22

33
import flixel.text.FlxText.FlxTextFormat;
44
import flixel.text.FlxText.FlxTextFormatMarkerPair;
5-
import flxanimate.animate.FlxAnim.FlxSymbolAnimation;
6-
import flxanimate.animate.FlxSymbol;
7-
import flxanimate.animate.FlxElement;
8-
import flxanimate.animate.SymbolParameters;
9-
import flxanimate.animate.FlxKeyFrame;
10-
import flxanimate.animate.FlxTimeline;
115
import flixel.graphics.frames.FlxFrame;
126
import flixel.animation.FlxAnimation;
137
import openfl.geom.Rectangle;

source/funkin/editors/ui/UIImageExplorer.hx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ package funkin.editors.ui;
33
import flixel.util.typeLimit.OneOfTwo;
44
import flixel.text.FlxText.FlxTextFormat;
55
import flixel.text.FlxText.FlxTextFormatMarkerPair;
6-
import flxanimate.data.SpriteMapData.AnimateAtlas;
76
import flixel.graphics.frames.FlxFramesCollection;
87
import haxe.Json;
98
import haxe.io.Bytes;
109
import haxe.io.Path;
1110
import openfl.display.BitmapData;
1211
import sys.FileSystem;
1312
import sys.io.File;
13+
import animate.FlxAnimateJson;
1414

1515
using StringTools;
1616
using funkin.backend.utils.BitmapUtil;
@@ -122,7 +122,7 @@ class UIImageExplorer extends UIFileExplorer {
122122
for(file in files) {
123123
if(SPRITEMAP_JSON_REGEX.match(file)) {
124124
var content:String = CoolUtil.removeBOM(File.getContent(Path.join([directoryPath, file])));
125-
var json:AnimateAtlas = Json.parse(content);
125+
var json:SpritemapJson = Json.parse(content);
126126
if(json.meta.image.toLowerCase() == fileName.toLowerCase())
127127
foundSpritemapJson = true;
128128
} else if(file == "Animation.json")
@@ -147,7 +147,7 @@ class UIImageExplorer extends UIFileExplorer {
147147
spritemaps.sort(Reflect.compare);
148148
for(spritemap in spritemaps) {
149149
var content:String = CoolUtil.removeBOM(File.getContent(Path.join([directoryPath, spritemap])));
150-
var json:AnimateAtlas = Json.parse(content);
150+
var json:SpritemapJson = Json.parse(content);
151151
var imageToFind:String = json.meta.image.toLowerCase();
152152
for(file in files) {
153153
// lowercase since windows does case insensitive stuff, so we use lowercase to match behavior on mac and linux

0 commit comments

Comments
 (0)