com.wallstop-studios.unity-helpers 2.0.0-rc27 → 2.0.0-rc30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +63 -63
- package/.github/workflows/npm-publish.yml +60 -0
- package/.github/workflows/unity-package.yml +87 -0
- package/Editor/AnimationCopier.cs +158 -158
- package/Editor/AnimationCopier.cs.meta +2 -2
- package/Editor/AnimationCreator.cs +262 -262
- package/Editor/AnimationCreator.cs.meta +11 -11
- package/Editor/AnimationEventEditor.cs +887 -887
- package/Editor/AnimatorControllerCopier.cs +162 -162
- package/Editor/AnimatorControllerCopier.cs.meta +2 -2
- package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs +34 -34
- package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs.meta +2 -2
- package/Editor/CustomEditors.meta +2 -2
- package/Editor/EnsureTextureSizeWizard.cs +110 -110
- package/Editor/EnsureTextureSizeWizard.cs.meta +2 -2
- package/Editor/PrefabCheckWizard.cs +165 -165
- package/Editor/PrefabCheckWizard.cs.meta +11 -11
- package/Editor/SpriteSettingsApplier.cs +168 -168
- package/Editor/SpriteSettingsApplier.cs.meta +2 -2
- package/Editor/StringInListeDrawer.cs +56 -56
- package/Editor/TextureResizerWizard.cs +181 -181
- package/Editor/TextureResizerWizard.cs.meta +2 -2
- package/Editor/TextureSettingsApplier.cs +171 -171
- package/Editor/TextureSettingsApplier.cs.meta +2 -2
- package/Editor/Utils/EditorUtilities.cs +22 -22
- package/Editor/Utils/EditorUtilities.cs.meta +11 -11
- package/Editor/Utils/ReadOnlyPropertyDrawer.cs +26 -26
- package/Editor/Utils/ReadOnlyPropertyDrawer.cs.meta +11 -11
- package/Editor/Utils.meta +8 -8
- package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef +17 -17
- package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef.meta +7 -7
- package/LICENSE +21 -21
- package/LICENSE.md +6 -6
- package/LICENSE.meta +7 -7
- package/README.md +117 -117
- package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll.meta +33 -33
- package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml +223 -223
- package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml.meta +7 -7
- package/Runtime/Binaries/System.Text.Encodings.Web.dll.meta +33 -33
- package/Runtime/Binaries/System.Text.Encodings.Web.xml +935 -935
- package/Runtime/Binaries/System.Text.Encodings.Web.xml.meta +7 -7
- package/Runtime/Binaries/System.Text.Json.dll.meta +33 -33
- package/Runtime/Binaries/System.Text.Json.xml +4829 -4829
- package/Runtime/Binaries/System.Text.Json.xml.meta +7 -7
- package/Runtime/Binaries.meta +8 -8
- package/Runtime/Core/Attributes/AnimationEventAttribute.cs +131 -131
- package/Runtime/Core/Attributes/ChildComponentAttribute.cs +189 -189
- package/Runtime/Core/Attributes/KSerializableAttribute.cs +19 -19
- package/Runtime/Core/Attributes/NotNullAttribute.cs +32 -32
- package/Runtime/Core/Attributes/ParentComponent.cs +184 -184
- package/Runtime/Core/Attributes/ReadOnlyAttribute.cs +6 -6
- package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +14 -14
- package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +119 -119
- package/Runtime/Core/Attributes/SiblingComponentAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs +101 -101
- package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes.meta +8 -8
- package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs +92 -92
- package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs +185 -185
- package/Runtime/Core/DataStructure/Adapters/KGuid.cs +305 -305
- package/Runtime/Core/DataStructure/Adapters/KVector2.cs +80 -80
- package/Runtime/Core/DataStructure/Circle.cs +50 -50
- package/Runtime/Core/DataStructure/CyclicBuffer.cs +155 -155
- package/Runtime/Core/DataStructure/ISpatialTree.cs +60 -60
- package/Runtime/Core/DataStructure/ISpatialTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/KDTree.cs +290 -290
- package/Runtime/Core/DataStructure/KDTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/QuadTree.cs +279 -279
- package/Runtime/Core/DataStructure/RTree.cs +336 -336
- package/Runtime/Core/DataStructure/RTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/StringWrapper.cs +91 -91
- package/Runtime/Core/DataStructure/TimedCache.cs +51 -51
- package/Runtime/Core/Extension/AnimatorExtensions.cs +25 -25
- package/Runtime/Core/Extension/CircleExtensions.cs +25 -25
- package/Runtime/Core/Extension/ColorExtensions.cs +338 -338
- package/Runtime/Core/Extension/DictionaryExtensions.cs +251 -251
- package/Runtime/Core/Extension/DirectionExtensions.cs +213 -213
- package/Runtime/Core/Extension/HashSetExtensions.cs +12 -12
- package/Runtime/Core/Extension/IEnumerableExtensions.cs +122 -122
- package/Runtime/Core/Extension/IListExtensions.cs +89 -89
- package/Runtime/Core/Extension/LoggingExtensions.cs +258 -258
- package/Runtime/Core/Extension/RandomExtensions.cs +109 -109
- package/Runtime/Core/Extension/StringExtensions.cs +151 -151
- package/Runtime/Core/Extension/UnityExtensions.cs +1607 -1607
- package/Runtime/Core/Helper/ArrayConverter.cs +39 -39
- package/Runtime/Core/Helper/ArrayConverter.cs.meta +2 -2
- package/Runtime/Core/Helper/AssignUtilities.cs +14 -14
- package/Runtime/Core/Helper/AssignUtilities.cs.meta +11 -11
- package/Runtime/Core/Helper/Enumerables.cs +17 -17
- package/Runtime/Core/Helper/Geometry.cs +43 -43
- package/Runtime/Core/Helper/Helpers.cs +722 -722
- package/Runtime/Core/Helper/Helpers.cs.meta +11 -11
- package/Runtime/Core/Helper/IterationHelpers.cs +32 -32
- package/Runtime/Core/Helper/IterationHelpers.cs.meta +11 -11
- package/Runtime/Core/Helper/LifetimeHelpers.cs +13 -13
- package/Runtime/Core/Helper/Objects.cs +767 -767
- package/Runtime/Core/Helper/Partials/LogHelpers.cs +13 -13
- package/Runtime/Core/Helper/Partials/LogHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/MathHelpers.cs +30 -30
- package/Runtime/Core/Helper/Partials/MathHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/ObjectHelpers.cs +388 -388
- package/Runtime/Core/Helper/Partials/ObjectHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/TransformHelpers.cs +167 -167
- package/Runtime/Core/Helper/Partials/TransformHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials.meta +2 -2
- package/Runtime/Core/Helper/ReflectionHelpers.cs +152 -152
- package/Runtime/Core/Helper/ReflectionHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/SpriteHelpers.cs +86 -86
- package/Runtime/Core/Helper/SpriteHelpers.cs.meta +11 -11
- package/Runtime/Core/Helper/StringInList.cs +31 -31
- package/Runtime/Core/Helper/StringInList.cs.meta +11 -11
- package/Runtime/Core/Helper/WallMath.cs +166 -166
- package/Runtime/Core/Math/Line.cs +55 -55
- package/Runtime/Core/Math/Parabola.cs +47 -47
- package/Runtime/Core/Math/PointPolygonCheck.cs +36 -36
- package/Runtime/Core/Math/PointPolygonCheck.cs.meta +11 -11
- package/Runtime/Core/Math/Range.cs +92 -92
- package/Runtime/Core/Math/XXHash.cs +310 -310
- package/Runtime/Core/Math/XXHash.cs.meta +11 -11
- package/Runtime/Core/Model/Direction.cs +43 -43
- package/Runtime/Core/OneOf/FastOneOf.cs +152 -152
- package/Runtime/Core/OneOf/None.cs +4 -4
- package/Runtime/Core/Random/AbstractRandom.cs +561 -561
- package/Runtime/Core/Random/DotNetRandom.cs +52 -52
- package/Runtime/Core/Random/DotNetRandom.cs.meta +2 -2
- package/Runtime/Core/Random/IRandom.cs +160 -160
- package/Runtime/Core/Random/NativePcgRandom.cs +97 -97
- package/Runtime/Core/Random/PRNG.cs +7 -7
- package/Runtime/Core/Random/PRNG.cs.meta +2 -2
- package/Runtime/Core/Random/PcgRandom.cs +149 -149
- package/Runtime/Core/Random/PerlinNoise.cs +369 -369
- package/Runtime/Core/Random/PerlinNoise.cs.meta +2 -2
- package/Runtime/Core/Random/RandomState.cs +131 -131
- package/Runtime/Core/Random/RandomUtilities.cs +26 -26
- package/Runtime/Core/Random/RandomUtilities.cs.meta +11 -11
- package/Runtime/Core/Random/RomuDuo.cs +116 -116
- package/Runtime/Core/Random/RomuDuo.cs.meta +2 -2
- package/Runtime/Core/Random/SplitMix64.cs +94 -94
- package/Runtime/Core/Random/SplitMix64.cs.meta +2 -2
- package/Runtime/Core/Random/SquirrelRandom.cs +84 -84
- package/Runtime/Core/Random/SystemRandom.cs +162 -162
- package/Runtime/Core/Random/ThreadLocalRandom.cs +12 -12
- package/Runtime/Core/Random/UnityRandom.cs +57 -57
- package/Runtime/Core/Random/UnityRandom.cs.meta +11 -11
- package/Runtime/Core/Random/WyRandom.cs +121 -121
- package/Runtime/Core/Random/WyRandom.cs.meta +2 -2
- package/Runtime/Core/Random/XorShiftRandom.cs +47 -47
- package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -11
- package/Runtime/Core/Random/XorShiroRandom.cs +117 -117
- package/Runtime/Core/Random/XorShiroRandom.cs.meta +2 -2
- package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +74 -74
- package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +81 -81
- package/Runtime/Core/Serialization/Serializer.cs +184 -184
- package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +107 -107
- package/Runtime/Protobuf-Net/System.Buffers.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Collections.Immutable.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Collections.Immutable.xml +5379 -5379
- package/Runtime/Protobuf-Net/System.Collections.Immutable.xml.meta +7 -7
- package/Runtime/Protobuf-Net/System.Numerics.Vectors.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml +290 -290
- package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml.meta +7 -7
- package/Runtime/Protobuf-Net/protobuf-net.Core.dll.meta +33 -33
- package/Runtime/Protobuf-Net/protobuf-net.dll.meta +33 -33
- package/Runtime/UI/LayeredImage.cs +364 -364
- package/Runtime/UI/LayeredImage.cs.meta +2 -2
- package/Runtime/UI.meta +2 -2
- package/Runtime/Utils/AnimationEventEqualityComparer.cs +161 -161
- package/Runtime/Utils/AnimatorEnumStateMachine.cs +88 -88
- package/Runtime/Utils/Buffers.cs +32 -32
- package/Runtime/Utils/CenterPointOffset.cs +30 -30
- package/Runtime/Utils/CenterPointOffset.cs.meta +2 -2
- package/Runtime/Utils/CircleLineRenderer.cs +134 -134
- package/Runtime/Utils/CoroutineHandler.cs +4 -4
- package/Runtime/Utils/CoroutineHandler.cs.meta +2 -2
- package/Runtime/Utils/MatchColliderToSprite.cs +94 -94
- package/Runtime/Utils/MatchColliderToSprite.cs.meta +2 -2
- package/Runtime/Utils/Oscillator.cs +27 -27
- package/Runtime/Utils/RuntimeSingleton.cs +57 -57
- package/Runtime/Utils/RuntimeSingleton.cs.meta +11 -11
- package/Runtime/Utils/SetTextureImportData.cs +69 -69
- package/Runtime/Utils/SpriteRendererMetadata.cs +312 -312
- package/Runtime/Utils/SpriteRendererMetadata.cs.meta +2 -2
- package/Runtime/Utils/SpriteRendererSyncer.cs +100 -100
- package/Runtime/Utils/SpriteRendererSyncer.cs.meta +2 -2
- package/Runtime/Utils/TextureScale.cs +179 -179
- package/Runtime/Utils/TextureScale.cs.meta +2 -2
- package/Runtime/WallstopStudios.UnityHelpers.asmdef +13 -13
- package/Tests/Runtime/Attributes/ChildComponentTests.cs +81 -81
- package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs +28 -28
- package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs +28 -28
- package/Tests/Runtime/Attributes/ParentComponentTests.cs +68 -68
- package/Tests/Runtime/Components/RelationalComponentTester.cs +34 -34
- package/Tests/Runtime/Components/RelationalComponentTester.cs.meta +2 -2
- package/Tests/Runtime/Components.meta +2 -2
- package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs +14 -14
- package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures/CyclicBufferTests.cs +324 -324
- package/Tests/Runtime/DataStructures/QuadTreeTests.cs +14 -14
- package/Tests/Runtime/DataStructures/QuadTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures/SpatialTreeTests.cs +130 -130
- package/Tests/Runtime/DataStructures/SpatialTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs +14 -14
- package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures.meta +8 -8
- package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs +439 -439
- package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/IListExtensionTests.cs +76 -76
- package/Tests/Runtime/Extensions/RandomExtensionTests.cs +27 -27
- package/Tests/Runtime/Extensions/RandomExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/StringExtensionTests.cs +31 -31
- package/Tests/Runtime/Extensions/StringExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions.meta +2 -2
- package/Tests/Runtime/Helper/ArrayConverterTests.cs +19 -19
- package/Tests/Runtime/Helper/ArrayConverterTests.cs.meta +2 -2
- package/Tests/Runtime/Helper/ObjectHelperTests.cs +402 -402
- package/Tests/Runtime/Helper/ObjectHelperTests.cs.meta +2 -2
- package/Tests/Runtime/Helper/WallMathTests.cs +233 -233
- package/Tests/Runtime/Helper/WallMathTests.cs.meta +2 -2
- package/Tests/Runtime/Helper.meta +2 -2
- package/Tests/Runtime/Performance/KDTreePerformanceTests.cs +14 -14
- package/Tests/Runtime/Performance/KDTreePerformanceTests.cs.meta +11 -11
- package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs +14 -14
- package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs.meta +11 -11
- package/Tests/Runtime/Performance/RandomPerformanceTests.cs +139 -139
- package/Tests/Runtime/Performance/RandomPerformanceTests.cs.meta +11 -11
- package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs +37 -37
- package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs.meta +2 -2
- package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs +154 -154
- package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs.meta +11 -11
- package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs +14 -14
- package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs.meta +11 -11
- package/Tests/Runtime/Performance.meta +8 -8
- package/Tests/Runtime/Random/DotNetRandomTests.cs +9 -9
- package/Tests/Runtime/Random/DotNetRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/PcgRandomTests.cs +9 -9
- package/Tests/Runtime/Random/PcgRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/RandomTestBase.cs +787 -787
- package/Tests/Runtime/Random/RandomTestBase.cs.meta +11 -11
- package/Tests/Runtime/Random/RomuDuoRandomTests.cs +9 -9
- package/Tests/Runtime/Random/RomuDuoRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/SplitMix64RandomTests.cs +9 -9
- package/Tests/Runtime/Random/SplitMix64RandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/SquirrelRandomTests.cs +14 -14
- package/Tests/Runtime/Random/SquirrelRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/SystemRandomTests.cs +10 -10
- package/Tests/Runtime/Random/SystemRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/UnityRandomTests.cs +9 -9
- package/Tests/Runtime/Random/UnityRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/WyRandomTests.cs +9 -9
- package/Tests/Runtime/Random/WyRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/XorShiftRandomTests.cs +9 -9
- package/Tests/Runtime/Random/XorShiftRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/XorShiroRandomTests.cs +9 -9
- package/Tests/Runtime/Random/XorShiroRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random.meta +8 -8
- package/Tests/Runtime/Serialization/JsonSerializationTest.cs +84 -84
- package/Tests/Runtime/Serialization/JsonSerializationTest.cs.meta +2 -2
- package/Tests/Runtime/Serialization.meta +2 -2
- package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs +399 -399
- package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs.meta +2 -2
- package/Tests/Runtime/Utils.meta +2 -2
- package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef +22 -22
- package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef.meta +7 -7
- package/Tests/Runtime.meta +8 -8
- package/package.json +38 -38
|
@@ -1,213 +1,213 @@
|
|
|
1
|
-
namespace UnityHelpers.Core.Extension
|
|
2
|
-
{
|
|
3
|
-
using System;
|
|
4
|
-
using System.Collections.Generic;
|
|
5
|
-
using System.Linq;
|
|
6
|
-
using Helper;
|
|
7
|
-
using Model;
|
|
8
|
-
using UnityEngine;
|
|
9
|
-
|
|
10
|
-
public static class DirectionExtensions
|
|
11
|
-
{
|
|
12
|
-
private static readonly Direction[] Directions = Enum.GetValues(typeof(Direction))
|
|
13
|
-
.OfType<Direction>()
|
|
14
|
-
.Except(Enumerables.Of(Direction.None))
|
|
15
|
-
.ToArray();
|
|
16
|
-
|
|
17
|
-
public static Direction Opposite(this Direction direction)
|
|
18
|
-
{
|
|
19
|
-
switch (direction)
|
|
20
|
-
{
|
|
21
|
-
case Direction.North:
|
|
22
|
-
return Direction.South;
|
|
23
|
-
case Direction.NorthEast:
|
|
24
|
-
return Direction.SouthWest;
|
|
25
|
-
case Direction.East:
|
|
26
|
-
return Direction.West;
|
|
27
|
-
case Direction.SouthEast:
|
|
28
|
-
return Direction.NorthWest;
|
|
29
|
-
case Direction.South:
|
|
30
|
-
return Direction.North;
|
|
31
|
-
case Direction.SouthWest:
|
|
32
|
-
return Direction.NorthEast;
|
|
33
|
-
case Direction.West:
|
|
34
|
-
return Direction.East;
|
|
35
|
-
case Direction.NorthWest:
|
|
36
|
-
return Direction.SouthEast;
|
|
37
|
-
case Direction.None:
|
|
38
|
-
return Direction.None;
|
|
39
|
-
default:
|
|
40
|
-
throw new ArgumentException($"Unknown direction {direction}.");
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
public static Vector2Int AsVector2Int(this Direction direction)
|
|
45
|
-
{
|
|
46
|
-
switch (direction)
|
|
47
|
-
{
|
|
48
|
-
case Direction.None:
|
|
49
|
-
return Vector2Int.zero;
|
|
50
|
-
case Direction.North:
|
|
51
|
-
return Vector2Int.up;
|
|
52
|
-
case Direction.NorthEast:
|
|
53
|
-
return new Vector2Int(1, 1);
|
|
54
|
-
case Direction.East:
|
|
55
|
-
return Vector2Int.right;
|
|
56
|
-
case Direction.SouthEast:
|
|
57
|
-
return new Vector2Int(1, -1);
|
|
58
|
-
case Direction.South:
|
|
59
|
-
return Vector2Int.down;
|
|
60
|
-
case Direction.SouthWest:
|
|
61
|
-
return new Vector2Int(-1, -1);
|
|
62
|
-
case Direction.West:
|
|
63
|
-
return Vector2Int.left;
|
|
64
|
-
case Direction.NorthWest:
|
|
65
|
-
return new Vector2Int(-1, 1);
|
|
66
|
-
default:
|
|
67
|
-
throw new ArgumentException($"Unknown direction {direction}.");
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
public static Vector2 AsVector2(this Direction direction)
|
|
72
|
-
{
|
|
73
|
-
return direction.AsVector2Int();
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
public static Direction AsDirection(this Vector3 vector3)
|
|
77
|
-
{
|
|
78
|
-
return AsDirection((Vector2)vector3);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
public static IEnumerable<Direction> Split(this Direction direction)
|
|
82
|
-
{
|
|
83
|
-
bool foundAny = false;
|
|
84
|
-
foreach (Direction singleDirection in Directions)
|
|
85
|
-
{
|
|
86
|
-
if (direction.HasFlag(singleDirection))
|
|
87
|
-
{
|
|
88
|
-
foundAny = true;
|
|
89
|
-
yield return singleDirection;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
if (!foundAny)
|
|
94
|
-
{
|
|
95
|
-
yield return Direction.None;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
public static Direction Combine(this IEnumerable<Direction> directions)
|
|
100
|
-
{
|
|
101
|
-
Direction combined = Direction.None;
|
|
102
|
-
foreach (Direction direction in directions)
|
|
103
|
-
{
|
|
104
|
-
combined |= direction;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
return combined;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
public static Direction AsDirection(this Vector2 vector, bool preferAngles = false)
|
|
111
|
-
{
|
|
112
|
-
if (vector == Vector2.zero)
|
|
113
|
-
{
|
|
114
|
-
return Direction.None;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
float angle;
|
|
118
|
-
if (vector.x < 0)
|
|
119
|
-
{
|
|
120
|
-
angle = 360 - Mathf.Atan2(vector.x, vector.y) * Mathf.Rad2Deg * -1;
|
|
121
|
-
}
|
|
122
|
-
else
|
|
123
|
-
{
|
|
124
|
-
angle = Mathf.Atan2(vector.x, vector.y) * Mathf.Rad2Deg;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
if (preferAngles)
|
|
128
|
-
{
|
|
129
|
-
if (345 <= angle || angle < 15)
|
|
130
|
-
{
|
|
131
|
-
return Direction.North;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
if (15 <= angle && angle < 75)
|
|
135
|
-
{
|
|
136
|
-
return Direction.NorthEast;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
if (75 <= angle && angle < 105)
|
|
140
|
-
{
|
|
141
|
-
return Direction.East;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
if (105 <= angle && angle < 165)
|
|
145
|
-
{
|
|
146
|
-
return Direction.SouthEast;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
if (165 <= angle && angle < 195)
|
|
150
|
-
{
|
|
151
|
-
return Direction.South;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
if (195 <= angle && angle < 255)
|
|
155
|
-
{
|
|
156
|
-
return Direction.SouthWest;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
if (255 <= angle && angle < 285)
|
|
160
|
-
{
|
|
161
|
-
return Direction.West;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
if (285 <= angle && angle < 345)
|
|
165
|
-
{
|
|
166
|
-
return Direction.NorthWest;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
if (337.5 <= angle || angle < 22.5)
|
|
171
|
-
{
|
|
172
|
-
return Direction.North;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
if (22.5 <= angle && angle < 67.5)
|
|
176
|
-
{
|
|
177
|
-
return Direction.NorthEast;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
if (67.5 <= angle && angle < 112.5)
|
|
181
|
-
{
|
|
182
|
-
return Direction.East;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
if (112.5 <= angle && angle < 157.5)
|
|
186
|
-
{
|
|
187
|
-
return Direction.SouthEast;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
if (157.5 <= angle && angle < 202.5)
|
|
191
|
-
{
|
|
192
|
-
return Direction.South;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
if (202.5 <= angle && angle < 247.5)
|
|
196
|
-
{
|
|
197
|
-
return Direction.SouthWest;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
if (247.5 <= angle && angle < 292.5)
|
|
201
|
-
{
|
|
202
|
-
return Direction.West;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
if (292.5 <= angle && angle < 337.5)
|
|
206
|
-
{
|
|
207
|
-
return Direction.NorthWest;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
return Direction.None;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
}
|
|
1
|
+
namespace UnityHelpers.Core.Extension
|
|
2
|
+
{
|
|
3
|
+
using System;
|
|
4
|
+
using System.Collections.Generic;
|
|
5
|
+
using System.Linq;
|
|
6
|
+
using Helper;
|
|
7
|
+
using Model;
|
|
8
|
+
using UnityEngine;
|
|
9
|
+
|
|
10
|
+
public static class DirectionExtensions
|
|
11
|
+
{
|
|
12
|
+
private static readonly Direction[] Directions = Enum.GetValues(typeof(Direction))
|
|
13
|
+
.OfType<Direction>()
|
|
14
|
+
.Except(Enumerables.Of(Direction.None))
|
|
15
|
+
.ToArray();
|
|
16
|
+
|
|
17
|
+
public static Direction Opposite(this Direction direction)
|
|
18
|
+
{
|
|
19
|
+
switch (direction)
|
|
20
|
+
{
|
|
21
|
+
case Direction.North:
|
|
22
|
+
return Direction.South;
|
|
23
|
+
case Direction.NorthEast:
|
|
24
|
+
return Direction.SouthWest;
|
|
25
|
+
case Direction.East:
|
|
26
|
+
return Direction.West;
|
|
27
|
+
case Direction.SouthEast:
|
|
28
|
+
return Direction.NorthWest;
|
|
29
|
+
case Direction.South:
|
|
30
|
+
return Direction.North;
|
|
31
|
+
case Direction.SouthWest:
|
|
32
|
+
return Direction.NorthEast;
|
|
33
|
+
case Direction.West:
|
|
34
|
+
return Direction.East;
|
|
35
|
+
case Direction.NorthWest:
|
|
36
|
+
return Direction.SouthEast;
|
|
37
|
+
case Direction.None:
|
|
38
|
+
return Direction.None;
|
|
39
|
+
default:
|
|
40
|
+
throw new ArgumentException($"Unknown direction {direction}.");
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public static Vector2Int AsVector2Int(this Direction direction)
|
|
45
|
+
{
|
|
46
|
+
switch (direction)
|
|
47
|
+
{
|
|
48
|
+
case Direction.None:
|
|
49
|
+
return Vector2Int.zero;
|
|
50
|
+
case Direction.North:
|
|
51
|
+
return Vector2Int.up;
|
|
52
|
+
case Direction.NorthEast:
|
|
53
|
+
return new Vector2Int(1, 1);
|
|
54
|
+
case Direction.East:
|
|
55
|
+
return Vector2Int.right;
|
|
56
|
+
case Direction.SouthEast:
|
|
57
|
+
return new Vector2Int(1, -1);
|
|
58
|
+
case Direction.South:
|
|
59
|
+
return Vector2Int.down;
|
|
60
|
+
case Direction.SouthWest:
|
|
61
|
+
return new Vector2Int(-1, -1);
|
|
62
|
+
case Direction.West:
|
|
63
|
+
return Vector2Int.left;
|
|
64
|
+
case Direction.NorthWest:
|
|
65
|
+
return new Vector2Int(-1, 1);
|
|
66
|
+
default:
|
|
67
|
+
throw new ArgumentException($"Unknown direction {direction}.");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
public static Vector2 AsVector2(this Direction direction)
|
|
72
|
+
{
|
|
73
|
+
return direction.AsVector2Int();
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
public static Direction AsDirection(this Vector3 vector3)
|
|
77
|
+
{
|
|
78
|
+
return AsDirection((Vector2)vector3);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
public static IEnumerable<Direction> Split(this Direction direction)
|
|
82
|
+
{
|
|
83
|
+
bool foundAny = false;
|
|
84
|
+
foreach (Direction singleDirection in Directions)
|
|
85
|
+
{
|
|
86
|
+
if (direction.HasFlag(singleDirection))
|
|
87
|
+
{
|
|
88
|
+
foundAny = true;
|
|
89
|
+
yield return singleDirection;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (!foundAny)
|
|
94
|
+
{
|
|
95
|
+
yield return Direction.None;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
public static Direction Combine(this IEnumerable<Direction> directions)
|
|
100
|
+
{
|
|
101
|
+
Direction combined = Direction.None;
|
|
102
|
+
foreach (Direction direction in directions)
|
|
103
|
+
{
|
|
104
|
+
combined |= direction;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return combined;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
public static Direction AsDirection(this Vector2 vector, bool preferAngles = false)
|
|
111
|
+
{
|
|
112
|
+
if (vector == Vector2.zero)
|
|
113
|
+
{
|
|
114
|
+
return Direction.None;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
float angle;
|
|
118
|
+
if (vector.x < 0)
|
|
119
|
+
{
|
|
120
|
+
angle = 360 - Mathf.Atan2(vector.x, vector.y) * Mathf.Rad2Deg * -1;
|
|
121
|
+
}
|
|
122
|
+
else
|
|
123
|
+
{
|
|
124
|
+
angle = Mathf.Atan2(vector.x, vector.y) * Mathf.Rad2Deg;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (preferAngles)
|
|
128
|
+
{
|
|
129
|
+
if (345 <= angle || angle < 15)
|
|
130
|
+
{
|
|
131
|
+
return Direction.North;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (15 <= angle && angle < 75)
|
|
135
|
+
{
|
|
136
|
+
return Direction.NorthEast;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if (75 <= angle && angle < 105)
|
|
140
|
+
{
|
|
141
|
+
return Direction.East;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
if (105 <= angle && angle < 165)
|
|
145
|
+
{
|
|
146
|
+
return Direction.SouthEast;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
if (165 <= angle && angle < 195)
|
|
150
|
+
{
|
|
151
|
+
return Direction.South;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
if (195 <= angle && angle < 255)
|
|
155
|
+
{
|
|
156
|
+
return Direction.SouthWest;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
if (255 <= angle && angle < 285)
|
|
160
|
+
{
|
|
161
|
+
return Direction.West;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
if (285 <= angle && angle < 345)
|
|
165
|
+
{
|
|
166
|
+
return Direction.NorthWest;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
if (337.5 <= angle || angle < 22.5)
|
|
171
|
+
{
|
|
172
|
+
return Direction.North;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
if (22.5 <= angle && angle < 67.5)
|
|
176
|
+
{
|
|
177
|
+
return Direction.NorthEast;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
if (67.5 <= angle && angle < 112.5)
|
|
181
|
+
{
|
|
182
|
+
return Direction.East;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
if (112.5 <= angle && angle < 157.5)
|
|
186
|
+
{
|
|
187
|
+
return Direction.SouthEast;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
if (157.5 <= angle && angle < 202.5)
|
|
191
|
+
{
|
|
192
|
+
return Direction.South;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
if (202.5 <= angle && angle < 247.5)
|
|
196
|
+
{
|
|
197
|
+
return Direction.SouthWest;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
if (247.5 <= angle && angle < 292.5)
|
|
201
|
+
{
|
|
202
|
+
return Direction.West;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if (292.5 <= angle && angle < 337.5)
|
|
206
|
+
{
|
|
207
|
+
return Direction.NorthWest;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
return Direction.None;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
namespace UnityHelpers.Core.Extension
|
|
2
|
-
{
|
|
3
|
-
using System.Collections.Generic;
|
|
4
|
-
|
|
5
|
-
public static class HashSetExtensions
|
|
6
|
-
{
|
|
7
|
-
public static void AddRange<T>(this HashSet<T> set, IEnumerable<T> elements)
|
|
8
|
-
{
|
|
9
|
-
set.UnionWith(elements);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
}
|
|
1
|
+
namespace UnityHelpers.Core.Extension
|
|
2
|
+
{
|
|
3
|
+
using System.Collections.Generic;
|
|
4
|
+
|
|
5
|
+
public static class HashSetExtensions
|
|
6
|
+
{
|
|
7
|
+
public static void AddRange<T>(this HashSet<T> set, IEnumerable<T> elements)
|
|
8
|
+
{
|
|
9
|
+
set.UnionWith(elements);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|