From 7db915cb4e78a357a076b58073e30099b954aa8d Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 25 Jan 2025 06:12:08 -0800 Subject: [PATCH] Beefy2D updates --- BeefLibs/Beefy2D/src/Utils.bf | 1 + BeefLibs/Beefy2D/src/geom/Vector2.bf | 5 +++++ BeefLibs/Beefy2D/src/gfx/Matrix.bf | 5 +++++ BeefLibs/Beefy2D/src/widgets/Widget.bf | 2 +- 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/BeefLibs/Beefy2D/src/Utils.bf b/BeefLibs/Beefy2D/src/Utils.bf index 4645bcb0..21195eb6 100644 --- a/BeefLibs/Beefy2D/src/Utils.bf +++ b/BeefLibs/Beefy2D/src/Utils.bf @@ -481,6 +481,7 @@ namespace Beefy public static Image GetAnimFrame(Image[] images, float pct) { int frameNum = (int)(images.Count * (pct - 0.000001f)); + frameNum %= images.Count; return images[frameNum]; } } diff --git a/BeefLibs/Beefy2D/src/geom/Vector2.bf b/BeefLibs/Beefy2D/src/geom/Vector2.bf index e6ee5c45..9f1c06da 100644 --- a/BeefLibs/Beefy2D/src/geom/Vector2.bf +++ b/BeefLibs/Beefy2D/src/geom/Vector2.bf @@ -109,6 +109,11 @@ namespace Beefy.geom return Vector2((float)Math.Cos(angle) * length, (float)Math.Sin(angle) * length); } + public static Vector2 operator -(Vector2 vec1) + { + return Vector2(-vec1.mX, -vec1.mY); + } + public static Vector2 operator +(Vector2 vec1, Vector2 vec2) { return Vector2(vec1.mX + vec2.mX, vec1.mY + vec2.mY); diff --git a/BeefLibs/Beefy2D/src/gfx/Matrix.bf b/BeefLibs/Beefy2D/src/gfx/Matrix.bf index d48dfed6..a03e2d25 100644 --- a/BeefLibs/Beefy2D/src/gfx/Matrix.bf +++ b/BeefLibs/Beefy2D/src/gfx/Matrix.bf @@ -168,6 +168,11 @@ namespace Beefy.gfx return Point(tx + a * point.x + c * point.y, ty + b * point.x + d * point.y); } + public Vector2 Multiply(Vector2 point) + { + return Vector2(tx + a * point.mX + c * point.mY, ty + b * point.mX + d * point.mY); + } + public void Invert() mut { float _a = a; diff --git a/BeefLibs/Beefy2D/src/widgets/Widget.bf b/BeefLibs/Beefy2D/src/widgets/Widget.bf index 46bb27d1..4ecee709 100644 --- a/BeefLibs/Beefy2D/src/widgets/Widget.bf +++ b/BeefLibs/Beefy2D/src/widgets/Widget.bf @@ -633,7 +633,7 @@ namespace Beefy.widgets if (targetWidget.mParent == mParent) { - mParent.ParentToSelfTranslate(transX, transY, out transX, out transY); + targetWidget.ParentToSelfTranslate(transX, transY, out transX, out transY); return; }