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.
Files changed (266) hide show
  1. package/.gitattributes +63 -63
  2. package/.github/workflows/npm-publish.yml +60 -0
  3. package/.github/workflows/unity-package.yml +87 -0
  4. package/Editor/AnimationCopier.cs +158 -158
  5. package/Editor/AnimationCopier.cs.meta +2 -2
  6. package/Editor/AnimationCreator.cs +262 -262
  7. package/Editor/AnimationCreator.cs.meta +11 -11
  8. package/Editor/AnimationEventEditor.cs +887 -887
  9. package/Editor/AnimatorControllerCopier.cs +162 -162
  10. package/Editor/AnimatorControllerCopier.cs.meta +2 -2
  11. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs +34 -34
  12. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs.meta +2 -2
  13. package/Editor/CustomEditors.meta +2 -2
  14. package/Editor/EnsureTextureSizeWizard.cs +110 -110
  15. package/Editor/EnsureTextureSizeWizard.cs.meta +2 -2
  16. package/Editor/PrefabCheckWizard.cs +165 -165
  17. package/Editor/PrefabCheckWizard.cs.meta +11 -11
  18. package/Editor/SpriteSettingsApplier.cs +168 -168
  19. package/Editor/SpriteSettingsApplier.cs.meta +2 -2
  20. package/Editor/StringInListeDrawer.cs +56 -56
  21. package/Editor/TextureResizerWizard.cs +181 -181
  22. package/Editor/TextureResizerWizard.cs.meta +2 -2
  23. package/Editor/TextureSettingsApplier.cs +171 -171
  24. package/Editor/TextureSettingsApplier.cs.meta +2 -2
  25. package/Editor/Utils/EditorUtilities.cs +22 -22
  26. package/Editor/Utils/EditorUtilities.cs.meta +11 -11
  27. package/Editor/Utils/ReadOnlyPropertyDrawer.cs +26 -26
  28. package/Editor/Utils/ReadOnlyPropertyDrawer.cs.meta +11 -11
  29. package/Editor/Utils.meta +8 -8
  30. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef +17 -17
  31. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef.meta +7 -7
  32. package/LICENSE +21 -21
  33. package/LICENSE.md +6 -6
  34. package/LICENSE.meta +7 -7
  35. package/README.md +117 -117
  36. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll.meta +33 -33
  37. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml +223 -223
  38. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml.meta +7 -7
  39. package/Runtime/Binaries/System.Text.Encodings.Web.dll.meta +33 -33
  40. package/Runtime/Binaries/System.Text.Encodings.Web.xml +935 -935
  41. package/Runtime/Binaries/System.Text.Encodings.Web.xml.meta +7 -7
  42. package/Runtime/Binaries/System.Text.Json.dll.meta +33 -33
  43. package/Runtime/Binaries/System.Text.Json.xml +4829 -4829
  44. package/Runtime/Binaries/System.Text.Json.xml.meta +7 -7
  45. package/Runtime/Binaries.meta +8 -8
  46. package/Runtime/Core/Attributes/AnimationEventAttribute.cs +131 -131
  47. package/Runtime/Core/Attributes/ChildComponentAttribute.cs +189 -189
  48. package/Runtime/Core/Attributes/KSerializableAttribute.cs +19 -19
  49. package/Runtime/Core/Attributes/NotNullAttribute.cs +32 -32
  50. package/Runtime/Core/Attributes/ParentComponent.cs +184 -184
  51. package/Runtime/Core/Attributes/ReadOnlyAttribute.cs +6 -6
  52. package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +14 -14
  53. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +119 -119
  54. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs.meta +11 -11
  55. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs +101 -101
  56. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs.meta +11 -11
  57. package/Runtime/Core/Attributes.meta +8 -8
  58. package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs +92 -92
  59. package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs +185 -185
  60. package/Runtime/Core/DataStructure/Adapters/KGuid.cs +305 -305
  61. package/Runtime/Core/DataStructure/Adapters/KVector2.cs +80 -80
  62. package/Runtime/Core/DataStructure/Circle.cs +50 -50
  63. package/Runtime/Core/DataStructure/CyclicBuffer.cs +155 -155
  64. package/Runtime/Core/DataStructure/ISpatialTree.cs +60 -60
  65. package/Runtime/Core/DataStructure/ISpatialTree.cs.meta +11 -11
  66. package/Runtime/Core/DataStructure/KDTree.cs +290 -290
  67. package/Runtime/Core/DataStructure/KDTree.cs.meta +11 -11
  68. package/Runtime/Core/DataStructure/QuadTree.cs +279 -279
  69. package/Runtime/Core/DataStructure/RTree.cs +336 -336
  70. package/Runtime/Core/DataStructure/RTree.cs.meta +11 -11
  71. package/Runtime/Core/DataStructure/StringWrapper.cs +91 -91
  72. package/Runtime/Core/DataStructure/TimedCache.cs +51 -51
  73. package/Runtime/Core/Extension/AnimatorExtensions.cs +25 -25
  74. package/Runtime/Core/Extension/CircleExtensions.cs +25 -25
  75. package/Runtime/Core/Extension/ColorExtensions.cs +338 -338
  76. package/Runtime/Core/Extension/DictionaryExtensions.cs +251 -251
  77. package/Runtime/Core/Extension/DirectionExtensions.cs +213 -213
  78. package/Runtime/Core/Extension/HashSetExtensions.cs +12 -12
  79. package/Runtime/Core/Extension/IEnumerableExtensions.cs +122 -122
  80. package/Runtime/Core/Extension/IListExtensions.cs +89 -89
  81. package/Runtime/Core/Extension/LoggingExtensions.cs +258 -258
  82. package/Runtime/Core/Extension/RandomExtensions.cs +109 -109
  83. package/Runtime/Core/Extension/StringExtensions.cs +151 -151
  84. package/Runtime/Core/Extension/UnityExtensions.cs +1607 -1607
  85. package/Runtime/Core/Helper/ArrayConverter.cs +39 -39
  86. package/Runtime/Core/Helper/ArrayConverter.cs.meta +2 -2
  87. package/Runtime/Core/Helper/AssignUtilities.cs +14 -14
  88. package/Runtime/Core/Helper/AssignUtilities.cs.meta +11 -11
  89. package/Runtime/Core/Helper/Enumerables.cs +17 -17
  90. package/Runtime/Core/Helper/Geometry.cs +43 -43
  91. package/Runtime/Core/Helper/Helpers.cs +722 -722
  92. package/Runtime/Core/Helper/Helpers.cs.meta +11 -11
  93. package/Runtime/Core/Helper/IterationHelpers.cs +32 -32
  94. package/Runtime/Core/Helper/IterationHelpers.cs.meta +11 -11
  95. package/Runtime/Core/Helper/LifetimeHelpers.cs +13 -13
  96. package/Runtime/Core/Helper/Objects.cs +767 -767
  97. package/Runtime/Core/Helper/Partials/LogHelpers.cs +13 -13
  98. package/Runtime/Core/Helper/Partials/LogHelpers.cs.meta +2 -2
  99. package/Runtime/Core/Helper/Partials/MathHelpers.cs +30 -30
  100. package/Runtime/Core/Helper/Partials/MathHelpers.cs.meta +2 -2
  101. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs +388 -388
  102. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs.meta +2 -2
  103. package/Runtime/Core/Helper/Partials/TransformHelpers.cs +167 -167
  104. package/Runtime/Core/Helper/Partials/TransformHelpers.cs.meta +2 -2
  105. package/Runtime/Core/Helper/Partials.meta +2 -2
  106. package/Runtime/Core/Helper/ReflectionHelpers.cs +152 -152
  107. package/Runtime/Core/Helper/ReflectionHelpers.cs.meta +2 -2
  108. package/Runtime/Core/Helper/SpriteHelpers.cs +86 -86
  109. package/Runtime/Core/Helper/SpriteHelpers.cs.meta +11 -11
  110. package/Runtime/Core/Helper/StringInList.cs +31 -31
  111. package/Runtime/Core/Helper/StringInList.cs.meta +11 -11
  112. package/Runtime/Core/Helper/WallMath.cs +166 -166
  113. package/Runtime/Core/Math/Line.cs +55 -55
  114. package/Runtime/Core/Math/Parabola.cs +47 -47
  115. package/Runtime/Core/Math/PointPolygonCheck.cs +36 -36
  116. package/Runtime/Core/Math/PointPolygonCheck.cs.meta +11 -11
  117. package/Runtime/Core/Math/Range.cs +92 -92
  118. package/Runtime/Core/Math/XXHash.cs +310 -310
  119. package/Runtime/Core/Math/XXHash.cs.meta +11 -11
  120. package/Runtime/Core/Model/Direction.cs +43 -43
  121. package/Runtime/Core/OneOf/FastOneOf.cs +152 -152
  122. package/Runtime/Core/OneOf/None.cs +4 -4
  123. package/Runtime/Core/Random/AbstractRandom.cs +561 -561
  124. package/Runtime/Core/Random/DotNetRandom.cs +52 -52
  125. package/Runtime/Core/Random/DotNetRandom.cs.meta +2 -2
  126. package/Runtime/Core/Random/IRandom.cs +160 -160
  127. package/Runtime/Core/Random/NativePcgRandom.cs +97 -97
  128. package/Runtime/Core/Random/PRNG.cs +7 -7
  129. package/Runtime/Core/Random/PRNG.cs.meta +2 -2
  130. package/Runtime/Core/Random/PcgRandom.cs +149 -149
  131. package/Runtime/Core/Random/PerlinNoise.cs +369 -369
  132. package/Runtime/Core/Random/PerlinNoise.cs.meta +2 -2
  133. package/Runtime/Core/Random/RandomState.cs +131 -131
  134. package/Runtime/Core/Random/RandomUtilities.cs +26 -26
  135. package/Runtime/Core/Random/RandomUtilities.cs.meta +11 -11
  136. package/Runtime/Core/Random/RomuDuo.cs +116 -116
  137. package/Runtime/Core/Random/RomuDuo.cs.meta +2 -2
  138. package/Runtime/Core/Random/SplitMix64.cs +94 -94
  139. package/Runtime/Core/Random/SplitMix64.cs.meta +2 -2
  140. package/Runtime/Core/Random/SquirrelRandom.cs +84 -84
  141. package/Runtime/Core/Random/SystemRandom.cs +162 -162
  142. package/Runtime/Core/Random/ThreadLocalRandom.cs +12 -12
  143. package/Runtime/Core/Random/UnityRandom.cs +57 -57
  144. package/Runtime/Core/Random/UnityRandom.cs.meta +11 -11
  145. package/Runtime/Core/Random/WyRandom.cs +121 -121
  146. package/Runtime/Core/Random/WyRandom.cs.meta +2 -2
  147. package/Runtime/Core/Random/XorShiftRandom.cs +47 -47
  148. package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -11
  149. package/Runtime/Core/Random/XorShiroRandom.cs +117 -117
  150. package/Runtime/Core/Random/XorShiroRandom.cs.meta +2 -2
  151. package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +74 -74
  152. package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +81 -81
  153. package/Runtime/Core/Serialization/Serializer.cs +184 -184
  154. package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +107 -107
  155. package/Runtime/Protobuf-Net/System.Buffers.dll.meta +33 -33
  156. package/Runtime/Protobuf-Net/System.Collections.Immutable.dll.meta +33 -33
  157. package/Runtime/Protobuf-Net/System.Collections.Immutable.xml +5379 -5379
  158. package/Runtime/Protobuf-Net/System.Collections.Immutable.xml.meta +7 -7
  159. package/Runtime/Protobuf-Net/System.Numerics.Vectors.dll.meta +33 -33
  160. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll.meta +33 -33
  161. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml +290 -290
  162. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml.meta +7 -7
  163. package/Runtime/Protobuf-Net/protobuf-net.Core.dll.meta +33 -33
  164. package/Runtime/Protobuf-Net/protobuf-net.dll.meta +33 -33
  165. package/Runtime/UI/LayeredImage.cs +364 -364
  166. package/Runtime/UI/LayeredImage.cs.meta +2 -2
  167. package/Runtime/UI.meta +2 -2
  168. package/Runtime/Utils/AnimationEventEqualityComparer.cs +161 -161
  169. package/Runtime/Utils/AnimatorEnumStateMachine.cs +88 -88
  170. package/Runtime/Utils/Buffers.cs +32 -32
  171. package/Runtime/Utils/CenterPointOffset.cs +30 -30
  172. package/Runtime/Utils/CenterPointOffset.cs.meta +2 -2
  173. package/Runtime/Utils/CircleLineRenderer.cs +134 -134
  174. package/Runtime/Utils/CoroutineHandler.cs +4 -4
  175. package/Runtime/Utils/CoroutineHandler.cs.meta +2 -2
  176. package/Runtime/Utils/MatchColliderToSprite.cs +94 -94
  177. package/Runtime/Utils/MatchColliderToSprite.cs.meta +2 -2
  178. package/Runtime/Utils/Oscillator.cs +27 -27
  179. package/Runtime/Utils/RuntimeSingleton.cs +57 -57
  180. package/Runtime/Utils/RuntimeSingleton.cs.meta +11 -11
  181. package/Runtime/Utils/SetTextureImportData.cs +69 -69
  182. package/Runtime/Utils/SpriteRendererMetadata.cs +312 -312
  183. package/Runtime/Utils/SpriteRendererMetadata.cs.meta +2 -2
  184. package/Runtime/Utils/SpriteRendererSyncer.cs +100 -100
  185. package/Runtime/Utils/SpriteRendererSyncer.cs.meta +2 -2
  186. package/Runtime/Utils/TextureScale.cs +179 -179
  187. package/Runtime/Utils/TextureScale.cs.meta +2 -2
  188. package/Runtime/WallstopStudios.UnityHelpers.asmdef +13 -13
  189. package/Tests/Runtime/Attributes/ChildComponentTests.cs +81 -81
  190. package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs +28 -28
  191. package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs +28 -28
  192. package/Tests/Runtime/Attributes/ParentComponentTests.cs +68 -68
  193. package/Tests/Runtime/Components/RelationalComponentTester.cs +34 -34
  194. package/Tests/Runtime/Components/RelationalComponentTester.cs.meta +2 -2
  195. package/Tests/Runtime/Components.meta +2 -2
  196. package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs +14 -14
  197. package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs.meta +11 -11
  198. package/Tests/Runtime/DataStructures/CyclicBufferTests.cs +324 -324
  199. package/Tests/Runtime/DataStructures/QuadTreeTests.cs +14 -14
  200. package/Tests/Runtime/DataStructures/QuadTreeTests.cs.meta +11 -11
  201. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs +130 -130
  202. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs.meta +11 -11
  203. package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs +14 -14
  204. package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs.meta +11 -11
  205. package/Tests/Runtime/DataStructures.meta +8 -8
  206. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs +439 -439
  207. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs.meta +2 -2
  208. package/Tests/Runtime/Extensions/IListExtensionTests.cs +76 -76
  209. package/Tests/Runtime/Extensions/RandomExtensionTests.cs +27 -27
  210. package/Tests/Runtime/Extensions/RandomExtensionTests.cs.meta +2 -2
  211. package/Tests/Runtime/Extensions/StringExtensionTests.cs +31 -31
  212. package/Tests/Runtime/Extensions/StringExtensionTests.cs.meta +2 -2
  213. package/Tests/Runtime/Extensions.meta +2 -2
  214. package/Tests/Runtime/Helper/ArrayConverterTests.cs +19 -19
  215. package/Tests/Runtime/Helper/ArrayConverterTests.cs.meta +2 -2
  216. package/Tests/Runtime/Helper/ObjectHelperTests.cs +402 -402
  217. package/Tests/Runtime/Helper/ObjectHelperTests.cs.meta +2 -2
  218. package/Tests/Runtime/Helper/WallMathTests.cs +233 -233
  219. package/Tests/Runtime/Helper/WallMathTests.cs.meta +2 -2
  220. package/Tests/Runtime/Helper.meta +2 -2
  221. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs +14 -14
  222. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs.meta +11 -11
  223. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs +14 -14
  224. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs.meta +11 -11
  225. package/Tests/Runtime/Performance/RandomPerformanceTests.cs +139 -139
  226. package/Tests/Runtime/Performance/RandomPerformanceTests.cs.meta +11 -11
  227. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs +37 -37
  228. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs.meta +2 -2
  229. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs +154 -154
  230. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs.meta +11 -11
  231. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs +14 -14
  232. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs.meta +11 -11
  233. package/Tests/Runtime/Performance.meta +8 -8
  234. package/Tests/Runtime/Random/DotNetRandomTests.cs +9 -9
  235. package/Tests/Runtime/Random/DotNetRandomTests.cs.meta +2 -2
  236. package/Tests/Runtime/Random/PcgRandomTests.cs +9 -9
  237. package/Tests/Runtime/Random/PcgRandomTests.cs.meta +11 -11
  238. package/Tests/Runtime/Random/RandomTestBase.cs +787 -787
  239. package/Tests/Runtime/Random/RandomTestBase.cs.meta +11 -11
  240. package/Tests/Runtime/Random/RomuDuoRandomTests.cs +9 -9
  241. package/Tests/Runtime/Random/RomuDuoRandomTests.cs.meta +2 -2
  242. package/Tests/Runtime/Random/SplitMix64RandomTests.cs +9 -9
  243. package/Tests/Runtime/Random/SplitMix64RandomTests.cs.meta +2 -2
  244. package/Tests/Runtime/Random/SquirrelRandomTests.cs +14 -14
  245. package/Tests/Runtime/Random/SquirrelRandomTests.cs.meta +11 -11
  246. package/Tests/Runtime/Random/SystemRandomTests.cs +10 -10
  247. package/Tests/Runtime/Random/SystemRandomTests.cs.meta +11 -11
  248. package/Tests/Runtime/Random/UnityRandomTests.cs +9 -9
  249. package/Tests/Runtime/Random/UnityRandomTests.cs.meta +11 -11
  250. package/Tests/Runtime/Random/WyRandomTests.cs +9 -9
  251. package/Tests/Runtime/Random/WyRandomTests.cs.meta +2 -2
  252. package/Tests/Runtime/Random/XorShiftRandomTests.cs +9 -9
  253. package/Tests/Runtime/Random/XorShiftRandomTests.cs.meta +11 -11
  254. package/Tests/Runtime/Random/XorShiroRandomTests.cs +9 -9
  255. package/Tests/Runtime/Random/XorShiroRandomTests.cs.meta +2 -2
  256. package/Tests/Runtime/Random.meta +8 -8
  257. package/Tests/Runtime/Serialization/JsonSerializationTest.cs +84 -84
  258. package/Tests/Runtime/Serialization/JsonSerializationTest.cs.meta +2 -2
  259. package/Tests/Runtime/Serialization.meta +2 -2
  260. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs +399 -399
  261. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs.meta +2 -2
  262. package/Tests/Runtime/Utils.meta +2 -2
  263. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef +22 -22
  264. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef.meta +7 -7
  265. package/Tests/Runtime.meta +8 -8
  266. 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