diff options
| author | Sarah Bradley <git@sarahduck.ca> | 2024-04-17 17:44:45 -0700 |
|---|---|---|
| committer | Sarah Bradley <git@sarahduck.ca> | 2024-04-17 17:44:45 -0700 |
| commit | 6c9bb11d4a1749360f1e3f11e198c92de8616efe (patch) | |
| tree | 59c9b48342e823f36577b62c8f2442e2dd60e6c4 /Extensions.cs | |
| parent | 7032958d5b38cf70c4f5b0765529a9160a4a75e9 (diff) | |
Bringing stuff from OnekoOnline
Diffstat (limited to 'Extensions.cs')
| -rw-r--r-- | Extensions.cs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Extensions.cs b/Extensions.cs new file mode 100644 index 0000000..40eb72d --- /dev/null +++ b/Extensions.cs @@ -0,0 +1,40 @@ +using System.Numerics; + +namespace SarahEngine; + +public static class MathExtensions +{ + public static Vector2 LimitLength(this Vector2 toLimit, float lengthLimit) + { + float length = toLimit.Length(); + if (toLimit == Vector2.Zero) return Vector2.Zero; + return Vector2.Normalize(toLimit) * MathF.Min(length, lengthLimit); + } + + public static Vector2 Round(this Vector2 toRound) + { + return new(MathF.Round(toRound.X), MathF.Round(toRound.Y)); + } +} + +public static class StringExtensions +{ + public static string LimitLength(this string value, int maxLength) + { + if (string.IsNullOrEmpty(value)) return value; + return value.Length <= maxLength ? value : value[..maxLength]; + } +} + +public static class Directions +{ + public static readonly Vector2 Up = new(0,-1); + public static readonly Vector2 Down = new(0,1); + public static readonly Vector2 Left = new(-1,0); + public static readonly Vector2 Right = new(1,0); + + public static readonly Vector2 UpLeft = Vector2.Normalize(Up+Left); + public static readonly Vector2 UpRight = Vector2.Normalize(Up+Right); + public static readonly Vector2 DownLeft = Vector2.Normalize(Down+Left); + public static readonly Vector2 DownRight = Vector2.Normalize(Down+Right); +}
\ No newline at end of file |
