com.wallstop-studios.unity-helpers 2.0.0-rc27 → 2.0.0-rc31

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.
Files changed (267) hide show
  1. package/.gitattributes +63 -63
  2. package/.github/workflows/npm-publish.yml +60 -0
  3. package/.github/workflows/unity-package.yml +101 -0
  4. package/.github/workflows/unity-tests.yml +38 -0
  5. package/Editor/AnimationCopier.cs +158 -158
  6. package/Editor/AnimationCopier.cs.meta +2 -2
  7. package/Editor/AnimationCreator.cs +262 -262
  8. package/Editor/AnimationCreator.cs.meta +11 -11
  9. package/Editor/AnimationEventEditor.cs +887 -887
  10. package/Editor/AnimatorControllerCopier.cs +162 -162
  11. package/Editor/AnimatorControllerCopier.cs.meta +2 -2
  12. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs +34 -34
  13. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs.meta +2 -2
  14. package/Editor/CustomEditors.meta +2 -2
  15. package/Editor/EnsureTextureSizeWizard.cs +110 -110
  16. package/Editor/EnsureTextureSizeWizard.cs.meta +2 -2
  17. package/Editor/PrefabCheckWizard.cs +165 -165
  18. package/Editor/PrefabCheckWizard.cs.meta +11 -11
  19. package/Editor/SpriteSettingsApplier.cs +168 -168
  20. package/Editor/SpriteSettingsApplier.cs.meta +2 -2
  21. package/Editor/StringInListeDrawer.cs +56 -56
  22. package/Editor/TextureResizerWizard.cs +181 -181
  23. package/Editor/TextureResizerWizard.cs.meta +2 -2
  24. package/Editor/TextureSettingsApplier.cs +171 -171
  25. package/Editor/TextureSettingsApplier.cs.meta +2 -2
  26. package/Editor/Utils/EditorUtilities.cs +22 -22
  27. package/Editor/Utils/EditorUtilities.cs.meta +11 -11
  28. package/Editor/Utils/ReadOnlyPropertyDrawer.cs +26 -26
  29. package/Editor/Utils/ReadOnlyPropertyDrawer.cs.meta +11 -11
  30. package/Editor/Utils.meta +8 -8
  31. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef +17 -17
  32. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef.meta +7 -7
  33. package/LICENSE +21 -21
  34. package/LICENSE.md +6 -6
  35. package/LICENSE.meta +7 -7
  36. package/README.md +117 -117
  37. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll.meta +33 -33
  38. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml +223 -223
  39. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml.meta +7 -7
  40. package/Runtime/Binaries/System.Text.Encodings.Web.dll.meta +33 -33
  41. package/Runtime/Binaries/System.Text.Encodings.Web.xml +935 -935
  42. package/Runtime/Binaries/System.Text.Encodings.Web.xml.meta +7 -7
  43. package/Runtime/Binaries/System.Text.Json.dll.meta +33 -33
  44. package/Runtime/Binaries/System.Text.Json.xml +4829 -4829
  45. package/Runtime/Binaries/System.Text.Json.xml.meta +7 -7
  46. package/Runtime/Binaries.meta +8 -8
  47. package/Runtime/Core/Attributes/AnimationEventAttribute.cs +131 -131
  48. package/Runtime/Core/Attributes/ChildComponentAttribute.cs +189 -189
  49. package/Runtime/Core/Attributes/KSerializableAttribute.cs +19 -19
  50. package/Runtime/Core/Attributes/NotNullAttribute.cs +32 -32
  51. package/Runtime/Core/Attributes/ParentComponent.cs +184 -184
  52. package/Runtime/Core/Attributes/ReadOnlyAttribute.cs +6 -6
  53. package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +14 -14
  54. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +119 -119
  55. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs.meta +11 -11
  56. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs +101 -101
  57. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs.meta +11 -11
  58. package/Runtime/Core/Attributes.meta +8 -8
  59. package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs +92 -92
  60. package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs +185 -185
  61. package/Runtime/Core/DataStructure/Adapters/KGuid.cs +305 -305
  62. package/Runtime/Core/DataStructure/Adapters/KVector2.cs +80 -80
  63. package/Runtime/Core/DataStructure/Circle.cs +50 -50
  64. package/Runtime/Core/DataStructure/CyclicBuffer.cs +155 -155
  65. package/Runtime/Core/DataStructure/ISpatialTree.cs +60 -60
  66. package/Runtime/Core/DataStructure/ISpatialTree.cs.meta +11 -11
  67. package/Runtime/Core/DataStructure/KDTree.cs +290 -290
  68. package/Runtime/Core/DataStructure/KDTree.cs.meta +11 -11
  69. package/Runtime/Core/DataStructure/QuadTree.cs +279 -279
  70. package/Runtime/Core/DataStructure/RTree.cs +336 -336
  71. package/Runtime/Core/DataStructure/RTree.cs.meta +11 -11
  72. package/Runtime/Core/DataStructure/StringWrapper.cs +91 -91
  73. package/Runtime/Core/DataStructure/TimedCache.cs +51 -51
  74. package/Runtime/Core/Extension/AnimatorExtensions.cs +25 -25
  75. package/Runtime/Core/Extension/CircleExtensions.cs +25 -25
  76. package/Runtime/Core/Extension/ColorExtensions.cs +338 -338
  77. package/Runtime/Core/Extension/DictionaryExtensions.cs +251 -251
  78. package/Runtime/Core/Extension/DirectionExtensions.cs +213 -213
  79. package/Runtime/Core/Extension/HashSetExtensions.cs +12 -12
  80. package/Runtime/Core/Extension/IEnumerableExtensions.cs +122 -122
  81. package/Runtime/Core/Extension/IListExtensions.cs +89 -89
  82. package/Runtime/Core/Extension/LoggingExtensions.cs +258 -258
  83. package/Runtime/Core/Extension/RandomExtensions.cs +109 -109
  84. package/Runtime/Core/Extension/StringExtensions.cs +151 -151
  85. package/Runtime/Core/Extension/UnityExtensions.cs +1607 -1607
  86. package/Runtime/Core/Helper/ArrayConverter.cs +39 -39
  87. package/Runtime/Core/Helper/ArrayConverter.cs.meta +2 -2
  88. package/Runtime/Core/Helper/AssignUtilities.cs +14 -14
  89. package/Runtime/Core/Helper/AssignUtilities.cs.meta +11 -11
  90. package/Runtime/Core/Helper/Enumerables.cs +17 -17
  91. package/Runtime/Core/Helper/Geometry.cs +43 -43
  92. package/Runtime/Core/Helper/Helpers.cs +722 -722
  93. package/Runtime/Core/Helper/Helpers.cs.meta +11 -11
  94. package/Runtime/Core/Helper/IterationHelpers.cs +32 -32
  95. package/Runtime/Core/Helper/IterationHelpers.cs.meta +11 -11
  96. package/Runtime/Core/Helper/LifetimeHelpers.cs +13 -13
  97. package/Runtime/Core/Helper/Objects.cs +767 -767
  98. package/Runtime/Core/Helper/Partials/LogHelpers.cs +13 -13
  99. package/Runtime/Core/Helper/Partials/LogHelpers.cs.meta +2 -2
  100. package/Runtime/Core/Helper/Partials/MathHelpers.cs +30 -30
  101. package/Runtime/Core/Helper/Partials/MathHelpers.cs.meta +2 -2
  102. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs +388 -388
  103. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs.meta +2 -2
  104. package/Runtime/Core/Helper/Partials/TransformHelpers.cs +167 -167
  105. package/Runtime/Core/Helper/Partials/TransformHelpers.cs.meta +2 -2
  106. package/Runtime/Core/Helper/Partials.meta +2 -2
  107. package/Runtime/Core/Helper/ReflectionHelpers.cs +152 -152
  108. package/Runtime/Core/Helper/ReflectionHelpers.cs.meta +2 -2
  109. package/Runtime/Core/Helper/SpriteHelpers.cs +86 -86
  110. package/Runtime/Core/Helper/SpriteHelpers.cs.meta +11 -11
  111. package/Runtime/Core/Helper/StringInList.cs +31 -31
  112. package/Runtime/Core/Helper/StringInList.cs.meta +11 -11
  113. package/Runtime/Core/Helper/WallMath.cs +166 -166
  114. package/Runtime/Core/Math/Line.cs +55 -55
  115. package/Runtime/Core/Math/Parabola.cs +47 -47
  116. package/Runtime/Core/Math/PointPolygonCheck.cs +36 -36
  117. package/Runtime/Core/Math/PointPolygonCheck.cs.meta +11 -11
  118. package/Runtime/Core/Math/Range.cs +92 -92
  119. package/Runtime/Core/Math/XXHash.cs +310 -310
  120. package/Runtime/Core/Math/XXHash.cs.meta +11 -11
  121. package/Runtime/Core/Model/Direction.cs +43 -43
  122. package/Runtime/Core/OneOf/FastOneOf.cs +152 -152
  123. package/Runtime/Core/OneOf/None.cs +4 -4
  124. package/Runtime/Core/Random/AbstractRandom.cs +561 -561
  125. package/Runtime/Core/Random/DotNetRandom.cs +52 -52
  126. package/Runtime/Core/Random/DotNetRandom.cs.meta +2 -2
  127. package/Runtime/Core/Random/IRandom.cs +160 -160
  128. package/Runtime/Core/Random/NativePcgRandom.cs +97 -97
  129. package/Runtime/Core/Random/PRNG.cs +7 -7
  130. package/Runtime/Core/Random/PRNG.cs.meta +2 -2
  131. package/Runtime/Core/Random/PcgRandom.cs +149 -149
  132. package/Runtime/Core/Random/PerlinNoise.cs +369 -369
  133. package/Runtime/Core/Random/PerlinNoise.cs.meta +2 -2
  134. package/Runtime/Core/Random/RandomState.cs +131 -131
  135. package/Runtime/Core/Random/RandomUtilities.cs +26 -26
  136. package/Runtime/Core/Random/RandomUtilities.cs.meta +11 -11
  137. package/Runtime/Core/Random/RomuDuo.cs +116 -116
  138. package/Runtime/Core/Random/RomuDuo.cs.meta +2 -2
  139. package/Runtime/Core/Random/SplitMix64.cs +94 -94
  140. package/Runtime/Core/Random/SplitMix64.cs.meta +2 -2
  141. package/Runtime/Core/Random/SquirrelRandom.cs +84 -84
  142. package/Runtime/Core/Random/SystemRandom.cs +162 -162
  143. package/Runtime/Core/Random/ThreadLocalRandom.cs +12 -12
  144. package/Runtime/Core/Random/UnityRandom.cs +57 -57
  145. package/Runtime/Core/Random/UnityRandom.cs.meta +11 -11
  146. package/Runtime/Core/Random/WyRandom.cs +121 -121
  147. package/Runtime/Core/Random/WyRandom.cs.meta +2 -2
  148. package/Runtime/Core/Random/XorShiftRandom.cs +47 -47
  149. package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -11
  150. package/Runtime/Core/Random/XorShiroRandom.cs +117 -117
  151. package/Runtime/Core/Random/XorShiroRandom.cs.meta +2 -2
  152. package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +74 -74
  153. package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +81 -81
  154. package/Runtime/Core/Serialization/Serializer.cs +184 -184
  155. package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +107 -107
  156. package/Runtime/Protobuf-Net/System.Buffers.dll.meta +33 -33
  157. package/Runtime/Protobuf-Net/System.Collections.Immutable.dll.meta +33 -33
  158. package/Runtime/Protobuf-Net/System.Collections.Immutable.xml +5379 -5379
  159. package/Runtime/Protobuf-Net/System.Collections.Immutable.xml.meta +7 -7
  160. package/Runtime/Protobuf-Net/System.Numerics.Vectors.dll.meta +33 -33
  161. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll.meta +33 -33
  162. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml +290 -290
  163. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml.meta +7 -7
  164. package/Runtime/Protobuf-Net/protobuf-net.Core.dll.meta +33 -33
  165. package/Runtime/Protobuf-Net/protobuf-net.dll.meta +33 -33
  166. package/Runtime/UI/LayeredImage.cs +364 -364
  167. package/Runtime/UI/LayeredImage.cs.meta +2 -2
  168. package/Runtime/UI.meta +2 -2
  169. package/Runtime/Utils/AnimationEventEqualityComparer.cs +161 -161
  170. package/Runtime/Utils/AnimatorEnumStateMachine.cs +88 -88
  171. package/Runtime/Utils/Buffers.cs +32 -32
  172. package/Runtime/Utils/CenterPointOffset.cs +30 -30
  173. package/Runtime/Utils/CenterPointOffset.cs.meta +2 -2
  174. package/Runtime/Utils/CircleLineRenderer.cs +134 -134
  175. package/Runtime/Utils/CoroutineHandler.cs +4 -4
  176. package/Runtime/Utils/CoroutineHandler.cs.meta +2 -2
  177. package/Runtime/Utils/MatchColliderToSprite.cs +94 -94
  178. package/Runtime/Utils/MatchColliderToSprite.cs.meta +2 -2
  179. package/Runtime/Utils/Oscillator.cs +27 -27
  180. package/Runtime/Utils/RuntimeSingleton.cs +57 -57
  181. package/Runtime/Utils/RuntimeSingleton.cs.meta +11 -11
  182. package/Runtime/Utils/SetTextureImportData.cs +69 -69
  183. package/Runtime/Utils/SpriteRendererMetadata.cs +312 -312
  184. package/Runtime/Utils/SpriteRendererMetadata.cs.meta +2 -2
  185. package/Runtime/Utils/SpriteRendererSyncer.cs +100 -100
  186. package/Runtime/Utils/SpriteRendererSyncer.cs.meta +2 -2
  187. package/Runtime/Utils/TextureScale.cs +179 -179
  188. package/Runtime/Utils/TextureScale.cs.meta +2 -2
  189. package/Runtime/WallstopStudios.UnityHelpers.asmdef +13 -13
  190. package/Tests/Runtime/Attributes/ChildComponentTests.cs +81 -81
  191. package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs +28 -28
  192. package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs +28 -28
  193. package/Tests/Runtime/Attributes/ParentComponentTests.cs +68 -68
  194. package/Tests/Runtime/Components/RelationalComponentTester.cs +34 -34
  195. package/Tests/Runtime/Components/RelationalComponentTester.cs.meta +2 -2
  196. package/Tests/Runtime/Components.meta +2 -2
  197. package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs +14 -14
  198. package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs.meta +11 -11
  199. package/Tests/Runtime/DataStructures/CyclicBufferTests.cs +324 -324
  200. package/Tests/Runtime/DataStructures/QuadTreeTests.cs +14 -14
  201. package/Tests/Runtime/DataStructures/QuadTreeTests.cs.meta +11 -11
  202. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs +130 -130
  203. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs.meta +11 -11
  204. package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs +14 -14
  205. package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs.meta +11 -11
  206. package/Tests/Runtime/DataStructures.meta +8 -8
  207. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs +439 -439
  208. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs.meta +2 -2
  209. package/Tests/Runtime/Extensions/IListExtensionTests.cs +76 -76
  210. package/Tests/Runtime/Extensions/RandomExtensionTests.cs +27 -27
  211. package/Tests/Runtime/Extensions/RandomExtensionTests.cs.meta +2 -2
  212. package/Tests/Runtime/Extensions/StringExtensionTests.cs +31 -31
  213. package/Tests/Runtime/Extensions/StringExtensionTests.cs.meta +2 -2
  214. package/Tests/Runtime/Extensions.meta +2 -2
  215. package/Tests/Runtime/Helper/ArrayConverterTests.cs +19 -19
  216. package/Tests/Runtime/Helper/ArrayConverterTests.cs.meta +2 -2
  217. package/Tests/Runtime/Helper/ObjectHelperTests.cs +402 -402
  218. package/Tests/Runtime/Helper/ObjectHelperTests.cs.meta +2 -2
  219. package/Tests/Runtime/Helper/WallMathTests.cs +233 -233
  220. package/Tests/Runtime/Helper/WallMathTests.cs.meta +2 -2
  221. package/Tests/Runtime/Helper.meta +2 -2
  222. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs +14 -14
  223. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs.meta +11 -11
  224. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs +14 -14
  225. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs.meta +11 -11
  226. package/Tests/Runtime/Performance/RandomPerformanceTests.cs +139 -139
  227. package/Tests/Runtime/Performance/RandomPerformanceTests.cs.meta +11 -11
  228. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs +37 -37
  229. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs.meta +2 -2
  230. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs +154 -154
  231. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs.meta +11 -11
  232. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs +14 -14
  233. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs.meta +11 -11
  234. package/Tests/Runtime/Performance.meta +8 -8
  235. package/Tests/Runtime/Random/DotNetRandomTests.cs +9 -9
  236. package/Tests/Runtime/Random/DotNetRandomTests.cs.meta +2 -2
  237. package/Tests/Runtime/Random/PcgRandomTests.cs +9 -9
  238. package/Tests/Runtime/Random/PcgRandomTests.cs.meta +11 -11
  239. package/Tests/Runtime/Random/RandomTestBase.cs +787 -787
  240. package/Tests/Runtime/Random/RandomTestBase.cs.meta +11 -11
  241. package/Tests/Runtime/Random/RomuDuoRandomTests.cs +9 -9
  242. package/Tests/Runtime/Random/RomuDuoRandomTests.cs.meta +2 -2
  243. package/Tests/Runtime/Random/SplitMix64RandomTests.cs +9 -9
  244. package/Tests/Runtime/Random/SplitMix64RandomTests.cs.meta +2 -2
  245. package/Tests/Runtime/Random/SquirrelRandomTests.cs +14 -14
  246. package/Tests/Runtime/Random/SquirrelRandomTests.cs.meta +11 -11
  247. package/Tests/Runtime/Random/SystemRandomTests.cs +10 -10
  248. package/Tests/Runtime/Random/SystemRandomTests.cs.meta +11 -11
  249. package/Tests/Runtime/Random/UnityRandomTests.cs +9 -9
  250. package/Tests/Runtime/Random/UnityRandomTests.cs.meta +11 -11
  251. package/Tests/Runtime/Random/WyRandomTests.cs +9 -9
  252. package/Tests/Runtime/Random/WyRandomTests.cs.meta +2 -2
  253. package/Tests/Runtime/Random/XorShiftRandomTests.cs +9 -9
  254. package/Tests/Runtime/Random/XorShiftRandomTests.cs.meta +11 -11
  255. package/Tests/Runtime/Random/XorShiroRandomTests.cs +9 -9
  256. package/Tests/Runtime/Random/XorShiroRandomTests.cs.meta +2 -2
  257. package/Tests/Runtime/Random.meta +8 -8
  258. package/Tests/Runtime/Serialization/JsonSerializationTest.cs +84 -84
  259. package/Tests/Runtime/Serialization/JsonSerializationTest.cs.meta +2 -2
  260. package/Tests/Runtime/Serialization.meta +2 -2
  261. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs +399 -399
  262. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs.meta +2 -2
  263. package/Tests/Runtime/Utils.meta +2 -2
  264. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef +22 -22
  265. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef.meta +7 -7
  266. package/Tests/Runtime.meta +8 -8
  267. package/package.json +38 -38
@@ -1,3 +1,3 @@
1
- fileFormatVersion: 2
2
- guid: d4af7f20a66c40e686d59e4253d72156
1
+ fileFormatVersion: 2
2
+ guid: d4af7f20a66c40e686d59e4253d72156
3
3
  timeCreated: 1735605169
package/Runtime/UI.meta CHANGED
@@ -1,3 +1,3 @@
1
- fileFormatVersion: 2
2
- guid: dd17cad9fb2348fa8249a668bc458174
1
+ fileFormatVersion: 2
2
+ guid: dd17cad9fb2348fa8249a668bc458174
3
3
  timeCreated: 1735605163
@@ -1,161 +1,161 @@
1
- namespace UnityHelpers.Utils
2
- {
3
- using System;
4
- using System.Collections.Generic;
5
- using UnityEngine;
6
-
7
- public sealed class AnimationEventEqualityComparer
8
- : EqualityComparer<AnimationEvent>,
9
- IComparer<AnimationEvent>
10
- {
11
- public static readonly AnimationEventEqualityComparer Instance = new();
12
-
13
- private AnimationEventEqualityComparer() { }
14
-
15
- // Returns a shallow copy with equatable values propagated
16
- public AnimationEvent Copy(AnimationEvent instance)
17
- {
18
- if (instance == null)
19
- {
20
- return null;
21
- }
22
-
23
- AnimationEvent copy = new();
24
- CopyInto(copy, instance);
25
- return copy;
26
- }
27
-
28
- public void CopyInto(AnimationEvent into, AnimationEvent parameters)
29
- {
30
- if (into == null || parameters == null)
31
- {
32
- return;
33
- }
34
-
35
- into.time = parameters.time;
36
- into.functionName = parameters.functionName;
37
- into.intParameter = parameters.intParameter;
38
- into.floatParameter = parameters.floatParameter;
39
- into.stringParameter = parameters.stringParameter;
40
- into.objectReferenceParameter = parameters.objectReferenceParameter;
41
- into.messageOptions = parameters.messageOptions;
42
- }
43
-
44
- public override bool Equals(AnimationEvent lhs, AnimationEvent rhs)
45
- {
46
- if (ReferenceEquals(lhs, rhs))
47
- {
48
- return true;
49
- }
50
-
51
- if (lhs == null || rhs == null)
52
- {
53
- return false;
54
- }
55
-
56
- // ReSharper disable once CompareOfFloatsByEqualityOperator
57
- if (lhs.time != rhs.time)
58
- {
59
- return false;
60
- }
61
-
62
- if (lhs.functionName != rhs.functionName)
63
- {
64
- return false;
65
- }
66
-
67
- if (lhs.intParameter != rhs.intParameter)
68
- {
69
- return false;
70
- }
71
-
72
- // ReSharper disable once CompareOfFloatsByEqualityOperator
73
- if (lhs.floatParameter != rhs.floatParameter)
74
- {
75
- return false;
76
- }
77
-
78
- if (lhs.stringParameter != rhs.stringParameter)
79
- {
80
- return false;
81
- }
82
-
83
- if (lhs.objectReferenceParameter != rhs.objectReferenceParameter)
84
- {
85
- return false;
86
- }
87
-
88
- if (lhs.messageOptions != rhs.messageOptions)
89
- {
90
- return false;
91
- }
92
-
93
- return true;
94
- }
95
-
96
- public override int GetHashCode(AnimationEvent instance)
97
- {
98
- return HashCode.Combine(
99
- instance.time,
100
- instance.functionName,
101
- instance.intParameter,
102
- instance.floatParameter,
103
- instance.stringParameter,
104
- instance.objectReferenceParameter,
105
- instance.messageOptions
106
- );
107
- }
108
-
109
- public int Compare(AnimationEvent lhs, AnimationEvent rhs)
110
- {
111
- if (ReferenceEquals(lhs, rhs))
112
- {
113
- return 0;
114
- }
115
-
116
- if (ReferenceEquals(null, rhs))
117
- {
118
- return 1;
119
- }
120
-
121
- if (ReferenceEquals(null, lhs))
122
- {
123
- return -1;
124
- }
125
-
126
- int timeComparison = lhs.time.CompareTo(rhs.time);
127
- if (timeComparison != 0)
128
- {
129
- return timeComparison;
130
- }
131
-
132
- int functionNameComparison = string.Compare(
133
- lhs.functionName,
134
- rhs.functionName,
135
- StringComparison.Ordinal
136
- );
137
- if (functionNameComparison != 0)
138
- {
139
- return functionNameComparison;
140
- }
141
-
142
- int intParameterComparison = lhs.intParameter.CompareTo(rhs.intParameter);
143
- if (intParameterComparison != 0)
144
- {
145
- return intParameterComparison;
146
- }
147
-
148
- int stringParameterComparison = string.Compare(
149
- lhs.stringParameter,
150
- rhs.stringParameter,
151
- StringComparison.Ordinal
152
- );
153
- if (stringParameterComparison != 0)
154
- {
155
- return stringParameterComparison;
156
- }
157
-
158
- return lhs.floatParameter.CompareTo(rhs.floatParameter);
159
- }
160
- }
161
- }
1
+ namespace UnityHelpers.Utils
2
+ {
3
+ using System;
4
+ using System.Collections.Generic;
5
+ using UnityEngine;
6
+
7
+ public sealed class AnimationEventEqualityComparer
8
+ : EqualityComparer<AnimationEvent>,
9
+ IComparer<AnimationEvent>
10
+ {
11
+ public static readonly AnimationEventEqualityComparer Instance = new();
12
+
13
+ private AnimationEventEqualityComparer() { }
14
+
15
+ // Returns a shallow copy with equatable values propagated
16
+ public AnimationEvent Copy(AnimationEvent instance)
17
+ {
18
+ if (instance == null)
19
+ {
20
+ return null;
21
+ }
22
+
23
+ AnimationEvent copy = new();
24
+ CopyInto(copy, instance);
25
+ return copy;
26
+ }
27
+
28
+ public void CopyInto(AnimationEvent into, AnimationEvent parameters)
29
+ {
30
+ if (into == null || parameters == null)
31
+ {
32
+ return;
33
+ }
34
+
35
+ into.time = parameters.time;
36
+ into.functionName = parameters.functionName;
37
+ into.intParameter = parameters.intParameter;
38
+ into.floatParameter = parameters.floatParameter;
39
+ into.stringParameter = parameters.stringParameter;
40
+ into.objectReferenceParameter = parameters.objectReferenceParameter;
41
+ into.messageOptions = parameters.messageOptions;
42
+ }
43
+
44
+ public override bool Equals(AnimationEvent lhs, AnimationEvent rhs)
45
+ {
46
+ if (ReferenceEquals(lhs, rhs))
47
+ {
48
+ return true;
49
+ }
50
+
51
+ if (lhs == null || rhs == null)
52
+ {
53
+ return false;
54
+ }
55
+
56
+ // ReSharper disable once CompareOfFloatsByEqualityOperator
57
+ if (lhs.time != rhs.time)
58
+ {
59
+ return false;
60
+ }
61
+
62
+ if (lhs.functionName != rhs.functionName)
63
+ {
64
+ return false;
65
+ }
66
+
67
+ if (lhs.intParameter != rhs.intParameter)
68
+ {
69
+ return false;
70
+ }
71
+
72
+ // ReSharper disable once CompareOfFloatsByEqualityOperator
73
+ if (lhs.floatParameter != rhs.floatParameter)
74
+ {
75
+ return false;
76
+ }
77
+
78
+ if (lhs.stringParameter != rhs.stringParameter)
79
+ {
80
+ return false;
81
+ }
82
+
83
+ if (lhs.objectReferenceParameter != rhs.objectReferenceParameter)
84
+ {
85
+ return false;
86
+ }
87
+
88
+ if (lhs.messageOptions != rhs.messageOptions)
89
+ {
90
+ return false;
91
+ }
92
+
93
+ return true;
94
+ }
95
+
96
+ public override int GetHashCode(AnimationEvent instance)
97
+ {
98
+ return HashCode.Combine(
99
+ instance.time,
100
+ instance.functionName,
101
+ instance.intParameter,
102
+ instance.floatParameter,
103
+ instance.stringParameter,
104
+ instance.objectReferenceParameter,
105
+ instance.messageOptions
106
+ );
107
+ }
108
+
109
+ public int Compare(AnimationEvent lhs, AnimationEvent rhs)
110
+ {
111
+ if (ReferenceEquals(lhs, rhs))
112
+ {
113
+ return 0;
114
+ }
115
+
116
+ if (ReferenceEquals(null, rhs))
117
+ {
118
+ return 1;
119
+ }
120
+
121
+ if (ReferenceEquals(null, lhs))
122
+ {
123
+ return -1;
124
+ }
125
+
126
+ int timeComparison = lhs.time.CompareTo(rhs.time);
127
+ if (timeComparison != 0)
128
+ {
129
+ return timeComparison;
130
+ }
131
+
132
+ int functionNameComparison = string.Compare(
133
+ lhs.functionName,
134
+ rhs.functionName,
135
+ StringComparison.Ordinal
136
+ );
137
+ if (functionNameComparison != 0)
138
+ {
139
+ return functionNameComparison;
140
+ }
141
+
142
+ int intParameterComparison = lhs.intParameter.CompareTo(rhs.intParameter);
143
+ if (intParameterComparison != 0)
144
+ {
145
+ return intParameterComparison;
146
+ }
147
+
148
+ int stringParameterComparison = string.Compare(
149
+ lhs.stringParameter,
150
+ rhs.stringParameter,
151
+ StringComparison.Ordinal
152
+ );
153
+ if (stringParameterComparison != 0)
154
+ {
155
+ return stringParameterComparison;
156
+ }
157
+
158
+ return lhs.floatParameter.CompareTo(rhs.floatParameter);
159
+ }
160
+ }
161
+ }
@@ -1,88 +1,88 @@
1
- namespace UnityHelpers.Utils
2
- {
3
- using System;
4
- using System.Collections.Generic;
5
- using System.Globalization;
6
- using System.Linq;
7
- using System.Runtime.Serialization;
8
- using System.Text.Json.Serialization;
9
- using Core.Extension;
10
- using UnityEngine;
11
-
12
- /// <summary>
13
- /// Maps & manages an enum parameter to bool Animator parameters.
14
- /// </summary>
15
- /// <typeparam name="T">Specific Enum being managed.</typeparam>
16
- [DataContract]
17
- public sealed class AnimatorEnumStateMachine<T>
18
- where T : struct, IConvertible, IComparable, IFormattable // This is as close as we can get to saying where T : Enum (https://stackoverflow.com/questions/79126/create-generic-method-constraining-t-to-an-enum)
19
- {
20
- private static readonly T[] Values = Enum.GetValues(typeof(T)).OfType<T>().ToArray();
21
-
22
- [JsonIgnore]
23
- [IgnoreDataMember]
24
- private readonly HashSet<string> _availableBools = new HashSet<string>();
25
-
26
- [JsonIgnore]
27
- [IgnoreDataMember]
28
- public readonly Animator Animator;
29
-
30
- [JsonIgnore]
31
- [IgnoreDataMember]
32
- private T _value;
33
-
34
- [DataMember]
35
- [JsonInclude]
36
- public T Value
37
- {
38
- get { return _value; }
39
- set
40
- {
41
- foreach (T possibleValue in Values)
42
- {
43
- string valueName = possibleValue.ToString(CultureInfo.InvariantCulture);
44
- if (_availableBools.Contains(valueName))
45
- {
46
- Animator.SetBool(valueName, Equals(value, possibleValue));
47
- }
48
- }
49
-
50
- _value = value;
51
- }
52
- }
53
-
54
- [DataMember]
55
- [JsonInclude]
56
- private string Type => typeof(T).Name;
57
-
58
- public AnimatorEnumStateMachine(Animator animator, T defaultValue = default(T))
59
- {
60
- if (animator == null)
61
- {
62
- throw new ArgumentNullException(nameof(animator));
63
- }
64
-
65
- Animator = animator;
66
-
67
- foreach (AnimatorControllerParameter parameter in Animator.parameters)
68
- {
69
- switch (parameter.type)
70
- {
71
- case AnimatorControllerParameterType.Bool:
72
- case AnimatorControllerParameterType.Trigger:
73
- _availableBools.Add(parameter.name);
74
- continue;
75
- default:
76
- continue;
77
- }
78
- }
79
-
80
- _value = defaultValue;
81
- }
82
-
83
- public override string ToString()
84
- {
85
- return this.ToJson();
86
- }
87
- }
88
- }
1
+ namespace UnityHelpers.Utils
2
+ {
3
+ using System;
4
+ using System.Collections.Generic;
5
+ using System.Globalization;
6
+ using System.Linq;
7
+ using System.Runtime.Serialization;
8
+ using System.Text.Json.Serialization;
9
+ using Core.Extension;
10
+ using UnityEngine;
11
+
12
+ /// <summary>
13
+ /// Maps & manages an enum parameter to bool Animator parameters.
14
+ /// </summary>
15
+ /// <typeparam name="T">Specific Enum being managed.</typeparam>
16
+ [DataContract]
17
+ public sealed class AnimatorEnumStateMachine<T>
18
+ where T : struct, IConvertible, IComparable, IFormattable // This is as close as we can get to saying where T : Enum (https://stackoverflow.com/questions/79126/create-generic-method-constraining-t-to-an-enum)
19
+ {
20
+ private static readonly T[] Values = Enum.GetValues(typeof(T)).OfType<T>().ToArray();
21
+
22
+ [JsonIgnore]
23
+ [IgnoreDataMember]
24
+ private readonly HashSet<string> _availableBools = new HashSet<string>();
25
+
26
+ [JsonIgnore]
27
+ [IgnoreDataMember]
28
+ public readonly Animator Animator;
29
+
30
+ [JsonIgnore]
31
+ [IgnoreDataMember]
32
+ private T _value;
33
+
34
+ [DataMember]
35
+ [JsonInclude]
36
+ public T Value
37
+ {
38
+ get { return _value; }
39
+ set
40
+ {
41
+ foreach (T possibleValue in Values)
42
+ {
43
+ string valueName = possibleValue.ToString(CultureInfo.InvariantCulture);
44
+ if (_availableBools.Contains(valueName))
45
+ {
46
+ Animator.SetBool(valueName, Equals(value, possibleValue));
47
+ }
48
+ }
49
+
50
+ _value = value;
51
+ }
52
+ }
53
+
54
+ [DataMember]
55
+ [JsonInclude]
56
+ private string Type => typeof(T).Name;
57
+
58
+ public AnimatorEnumStateMachine(Animator animator, T defaultValue = default(T))
59
+ {
60
+ if (animator == null)
61
+ {
62
+ throw new ArgumentNullException(nameof(animator));
63
+ }
64
+
65
+ Animator = animator;
66
+
67
+ foreach (AnimatorControllerParameter parameter in Animator.parameters)
68
+ {
69
+ switch (parameter.type)
70
+ {
71
+ case AnimatorControllerParameterType.Bool:
72
+ case AnimatorControllerParameterType.Trigger:
73
+ _availableBools.Add(parameter.name);
74
+ continue;
75
+ default:
76
+ continue;
77
+ }
78
+ }
79
+
80
+ _value = defaultValue;
81
+ }
82
+
83
+ public override string ToString()
84
+ {
85
+ return this.ToJson();
86
+ }
87
+ }
88
+ }
@@ -1,32 +1,32 @@
1
- namespace UnityHelpers.Utils
2
- {
3
- using System.Collections.Generic;
4
- using UnityEngine;
5
-
6
- public static class Buffers
7
- {
8
- public const int BufferSize = 10_000;
9
-
10
- public static readonly HashSet<Collider2D> UniqueColliders = new();
11
- public static readonly Collider2D[] Colliders = new Collider2D[BufferSize];
12
- public static readonly RaycastHit2D[] RaycastHits = new RaycastHit2D[BufferSize];
13
-
14
- /*
15
- Note: Only use with CONSTANT time values, otherwise this is a memory leak.
16
- DO NOT USE with random values.
17
- */
18
- public static readonly Dictionary<float, WaitForSeconds> WaitForSeconds = new();
19
- public static readonly System.Random Random = new();
20
- public static readonly WaitForFixedUpdate WaitForFixedUpdate = new();
21
- public static readonly WaitForEndOfFrame WaitForEndOfFrame = new();
22
- }
23
-
24
- public static class Buffers<T>
25
- {
26
- public static readonly List<T> List = new();
27
- public static readonly HashSet<T> HashSet = new();
28
- public static readonly Queue<T> Queue = new();
29
- public static readonly Stack<T> Stack = new();
30
- public static readonly LinkedList<T> LinkedList = new();
31
- }
32
- }
1
+ namespace UnityHelpers.Utils
2
+ {
3
+ using System.Collections.Generic;
4
+ using UnityEngine;
5
+
6
+ public static class Buffers
7
+ {
8
+ public const int BufferSize = 10_000;
9
+
10
+ public static readonly HashSet<Collider2D> UniqueColliders = new();
11
+ public static readonly Collider2D[] Colliders = new Collider2D[BufferSize];
12
+ public static readonly RaycastHit2D[] RaycastHits = new RaycastHit2D[BufferSize];
13
+
14
+ /*
15
+ Note: Only use with CONSTANT time values, otherwise this is a memory leak.
16
+ DO NOT USE with random values.
17
+ */
18
+ public static readonly Dictionary<float, WaitForSeconds> WaitForSeconds = new();
19
+ public static readonly System.Random Random = new();
20
+ public static readonly WaitForFixedUpdate WaitForFixedUpdate = new();
21
+ public static readonly WaitForEndOfFrame WaitForEndOfFrame = new();
22
+ }
23
+
24
+ public static class Buffers<T>
25
+ {
26
+ public static readonly List<T> List = new();
27
+ public static readonly HashSet<T> HashSet = new();
28
+ public static readonly Queue<T> Queue = new();
29
+ public static readonly Stack<T> Stack = new();
30
+ public static readonly LinkedList<T> LinkedList = new();
31
+ }
32
+ }
@@ -1,30 +1,30 @@
1
- namespace UnityHelpers.Utils
2
- {
3
- using Core.Attributes;
4
- using UnityEngine;
5
-
6
- [DisallowMultipleComponent]
7
- public sealed class CenterPointOffset : MonoBehaviour
8
- {
9
- public Vector2 offset = Vector2.zero;
10
-
11
- public bool spriteUsesOffset = true;
12
-
13
- [SiblingComponent]
14
- private Transform _transform;
15
-
16
- private void Awake()
17
- {
18
- this.AssignSiblingComponents();
19
- }
20
-
21
- public Vector2 CenterPoint
22
- {
23
- get
24
- {
25
- Vector2 scaledOffset = offset * _transform.localScale;
26
- return (Vector2)_transform.position + scaledOffset;
27
- }
28
- }
29
- }
30
- }
1
+ namespace UnityHelpers.Utils
2
+ {
3
+ using Core.Attributes;
4
+ using UnityEngine;
5
+
6
+ [DisallowMultipleComponent]
7
+ public sealed class CenterPointOffset : MonoBehaviour
8
+ {
9
+ public Vector2 offset = Vector2.zero;
10
+
11
+ public bool spriteUsesOffset = true;
12
+
13
+ [SiblingComponent]
14
+ private Transform _transform;
15
+
16
+ private void Awake()
17
+ {
18
+ this.AssignSiblingComponents();
19
+ }
20
+
21
+ public Vector2 CenterPoint
22
+ {
23
+ get
24
+ {
25
+ Vector2 scaledOffset = offset * _transform.localScale;
26
+ return (Vector2)_transform.position + scaledOffset;
27
+ }
28
+ }
29
+ }
30
+ }
@@ -1,3 +1,3 @@
1
- fileFormatVersion: 2
2
- guid: f1e1dfbe10214f8b8f30acd34d67aa7f
1
+ fileFormatVersion: 2
2
+ guid: f1e1dfbe10214f8b8f30acd34d67aa7f
3
3
  timeCreated: 1720737954