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
package/.gitattributes CHANGED
@@ -1,63 +1,63 @@
1
- ###############################################################################
2
- # Set default behavior to automatically normalize line endings.
3
- ###############################################################################
4
- * text=auto
5
-
6
- ###############################################################################
7
- # Set default behavior for command prompt diff.
8
- #
9
- # This is need for earlier builds of msysgit that does not have it on by
10
- # default for csharp files.
11
- # Note: This is only used by command line
12
- ###############################################################################
13
- #*.cs diff=csharp
14
-
15
- ###############################################################################
16
- # Set the merge driver for project and solution files
17
- #
18
- # Merging from the command prompt will add diff markers to the files if there
19
- # are conflicts (Merging from VS is not affected by the settings below, in VS
20
- # the diff markers are never inserted). Diff markers may cause the following
21
- # file extensions to fail to load in VS. An alternative would be to treat
22
- # these files as binary and thus will always conflict and require user
23
- # intervention with every merge. To do so, just uncomment the entries below
24
- ###############################################################################
25
- #*.sln merge=binary
26
- #*.csproj merge=binary
27
- #*.vbproj merge=binary
28
- #*.vcxproj merge=binary
29
- #*.vcproj merge=binary
30
- #*.dbproj merge=binary
31
- #*.fsproj merge=binary
32
- #*.lsproj merge=binary
33
- #*.wixproj merge=binary
34
- #*.modelproj merge=binary
35
- #*.sqlproj merge=binary
36
- #*.wwaproj merge=binary
37
-
38
- ###############################################################################
39
- # behavior for image files
40
- #
41
- # image files are treated as binary by default.
42
- ###############################################################################
43
- #*.jpg binary
44
- #*.png binary
45
- #*.gif binary
46
-
47
- ###############################################################################
48
- # diff behavior for common document formats
49
- #
50
- # Convert binary document formats to text before diffing them. This feature
51
- # is only available from the command line. Turn it on by uncommenting the
52
- # entries below.
53
- ###############################################################################
54
- #*.doc diff=astextplain
55
- #*.DOC diff=astextplain
56
- #*.docx diff=astextplain
57
- #*.DOCX diff=astextplain
58
- #*.dot diff=astextplain
59
- #*.DOT diff=astextplain
60
- #*.pdf diff=astextplain
61
- #*.PDF diff=astextplain
62
- #*.rtf diff=astextplain
63
- #*.RTF diff=astextplain
1
+ ###############################################################################
2
+ # Set default behavior to automatically normalize line endings.
3
+ ###############################################################################
4
+ * text=auto
5
+
6
+ ###############################################################################
7
+ # Set default behavior for command prompt diff.
8
+ #
9
+ # This is need for earlier builds of msysgit that does not have it on by
10
+ # default for csharp files.
11
+ # Note: This is only used by command line
12
+ ###############################################################################
13
+ #*.cs diff=csharp
14
+
15
+ ###############################################################################
16
+ # Set the merge driver for project and solution files
17
+ #
18
+ # Merging from the command prompt will add diff markers to the files if there
19
+ # are conflicts (Merging from VS is not affected by the settings below, in VS
20
+ # the diff markers are never inserted). Diff markers may cause the following
21
+ # file extensions to fail to load in VS. An alternative would be to treat
22
+ # these files as binary and thus will always conflict and require user
23
+ # intervention with every merge. To do so, just uncomment the entries below
24
+ ###############################################################################
25
+ #*.sln merge=binary
26
+ #*.csproj merge=binary
27
+ #*.vbproj merge=binary
28
+ #*.vcxproj merge=binary
29
+ #*.vcproj merge=binary
30
+ #*.dbproj merge=binary
31
+ #*.fsproj merge=binary
32
+ #*.lsproj merge=binary
33
+ #*.wixproj merge=binary
34
+ #*.modelproj merge=binary
35
+ #*.sqlproj merge=binary
36
+ #*.wwaproj merge=binary
37
+
38
+ ###############################################################################
39
+ # behavior for image files
40
+ #
41
+ # image files are treated as binary by default.
42
+ ###############################################################################
43
+ #*.jpg binary
44
+ #*.png binary
45
+ #*.gif binary
46
+
47
+ ###############################################################################
48
+ # diff behavior for common document formats
49
+ #
50
+ # Convert binary document formats to text before diffing them. This feature
51
+ # is only available from the command line. Turn it on by uncommenting the
52
+ # entries below.
53
+ ###############################################################################
54
+ #*.doc diff=astextplain
55
+ #*.DOC diff=astextplain
56
+ #*.docx diff=astextplain
57
+ #*.DOCX diff=astextplain
58
+ #*.dot diff=astextplain
59
+ #*.DOT diff=astextplain
60
+ #*.pdf diff=astextplain
61
+ #*.PDF diff=astextplain
62
+ #*.rtf diff=astextplain
63
+ #*.RTF diff=astextplain
@@ -0,0 +1,60 @@
1
+ name: Publish to NPM
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ paths:
8
+ - 'package.json'
9
+
10
+ jobs:
11
+ publish_npm:
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - name: Checkout Repository
16
+ uses: actions/checkout@v4
17
+ with:
18
+ fetch-depth: 0 # Ensure full commit history for version comparison
19
+
20
+ - name: Set up Node.js
21
+ uses: actions/setup-node@v4
22
+ with:
23
+ node-version: 18
24
+ registry-url: 'https://registry.npmjs.org/'
25
+
26
+ - name: Check if version changed
27
+ id: version_check
28
+ run: |
29
+ PREV_VERSION=$(git show HEAD~1:package.json | jq -r '.version' || echo "0.0.0")
30
+ NEW_VERSION=$(jq -r '.version' package.json)
31
+ echo "Previous version: $PREV_VERSION"
32
+ echo "New version: $NEW_VERSION"
33
+
34
+ if [ "$PREV_VERSION" != "$NEW_VERSION" ]; then
35
+ echo "Version changed, proceeding..."
36
+ echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
37
+ echo "should_publish=true" >> $GITHUB_ENV
38
+
39
+ # Detect pre-releases (versions with "rc" or similar tags)
40
+ if [[ "$NEW_VERSION" == *"rc"* ]]; then
41
+ echo "This is a pre-release (next tag)."
42
+ echo "NPM_TAG=next" >> $GITHUB_ENV
43
+ else
44
+ echo "This is a stable release (latest tag)."
45
+ echo "NPM_TAG=latest" >> $GITHUB_ENV
46
+ fi
47
+ else
48
+ echo "Version did not change, skipping..."
49
+ echo "should_publish=false" >> $GITHUB_ENV
50
+ fi
51
+
52
+ - name: Install Dependencies
53
+ if: env.should_publish == 'true'
54
+ run: npm install
55
+
56
+ - name: Publish to NPM
57
+ if: env.should_publish == 'true'
58
+ run: npm publish --access public --tag ${{ env.NPM_TAG }}
59
+ env:
60
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
@@ -0,0 +1,101 @@
1
+ name: Export and Release Unity Package
2
+
3
+ on:
4
+ workflow_run:
5
+ workflows: ["Unity Tests"]
6
+ types:
7
+ - completed
8
+ push:
9
+ branches:
10
+ - main
11
+ paths:
12
+ - 'package.json'
13
+
14
+ jobs:
15
+ package_unity:
16
+ runs-on: ubuntu-latest
17
+
18
+ steps:
19
+ - name: Checkout Repository
20
+ uses: actions/checkout@v4
21
+ with:
22
+ fetch-depth: 0 # Ensure full commit history for version comparison
23
+
24
+ - name: Set up Node.js
25
+ uses: actions/setup-node@v4
26
+ with:
27
+ node-version: 18
28
+
29
+ - name: Check if version changed
30
+ id: version_check
31
+ run: |
32
+ PREV_VERSION=$(git show HEAD~1:package.json | jq -r '.version' || echo "0.0.0")
33
+ NEW_VERSION=$(jq -r '.version' package.json)
34
+ echo "Previous version: $PREV_VERSION"
35
+ echo "New version: $NEW_VERSION"
36
+
37
+ if [ "$PREV_VERSION" != "$NEW_VERSION" ]; then
38
+ echo "Version changed, proceeding..."
39
+ echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
40
+ echo "should_build=true" >> $GITHUB_ENV
41
+
42
+ # Check for pre-release versions
43
+ if [[ "$NEW_VERSION" == *"rc"* ]]; then
44
+ echo "This is a pre-release (next tag)."
45
+ echo "IS_PRERELEASE=true" >> $GITHUB_ENV
46
+ else
47
+ echo "This is a stable release."
48
+ echo "IS_PRERELEASE=false" >> $GITHUB_ENV
49
+ fi
50
+ else
51
+ echo "Version did not change, skipping..."
52
+ echo "should_build=false" >> $GITHUB_ENV
53
+ fi
54
+
55
+ - name: Activate Unity License
56
+ if: env.should_build == 'true'
57
+ env:
58
+ UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
59
+ run: |
60
+ echo "$UNITY_LICENSE" | base64 --decode > UnityLicense.ulf
61
+ echo "Unity license activated."
62
+
63
+ - name: Set up Unity
64
+ if: env.should_build == 'true'
65
+ uses: game-ci/unity-builder@v3
66
+ with:
67
+ unityVersion: 2022.3.10f1 # Change to your Unity version
68
+ targetPlatform: StandaloneLinux64
69
+ activateLicense: true
70
+ unityLicense: ${{ secrets.UNITY_LICENSE }}
71
+
72
+ - name: Export Unity Package
73
+ if: env.should_build == 'true'
74
+ run: |
75
+ EXPORT_DIR="UnityHelpers"
76
+ PACKAGE_NAME="WallstopStudios.UnityHelpers.unitypackage"
77
+
78
+ mkdir -p $EXPORT_DIR
79
+
80
+ echo "Exporting package: $EXPORT_DIR/$PACKAGE_NAME"
81
+
82
+ /opt/unity/Editor/Unity \
83
+ -batchmode -quit \
84
+ -projectPath "$(pwd)" \
85
+ -exportPackage "Assets" "$EXPORT_DIR/$PACKAGE_NAME"
86
+
87
+ echo "PACKAGE_PATH=$EXPORT_DIR/$PACKAGE_NAME" >> $GITHUB_ENV
88
+
89
+ - name: Create GitHub Release
90
+ if: env.should_build == 'true'
91
+ id: create_release
92
+ uses: softprops/action-gh-release@v2
93
+ with:
94
+ tag_name: v${{ env.NEW_VERSION }}
95
+ release_name: "Unity Helpers v${{ env.NEW_VERSION }}"
96
+ body: "Automatically generated release for version ${{ env.NEW_VERSION }}."
97
+ draft: false
98
+ prerelease: ${{ env.IS_PRERELEASE == 'true' }}
99
+ files: ${{ env.PACKAGE_PATH }}
100
+ env:
101
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,38 @@
1
+ name: Unity Tests
2
+
3
+ on:
4
+ push:
5
+ pull_request:
6
+
7
+ jobs:
8
+ test:
9
+ name: Run Unity Tests
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - name: Checkout repository
14
+ uses: actions/checkout@v4
15
+
16
+ - name: Cache Library folder
17
+ uses: actions/cache@v4
18
+ with:
19
+ path: Library
20
+ key: Library-${{ runner.os }}-${{ hashFiles('Packages/manifest.json') }}
21
+ restore-keys: |
22
+ Library-${{ runner.os }}-
23
+
24
+ - name: Activate Unity License
25
+ uses: game-ci/unity-activate@v3
26
+ env:
27
+ UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
28
+
29
+ - name: Run Unity Tests
30
+ uses: game-ci/unity-test-runner@v3
31
+ with:
32
+ projectPath: .
33
+ githubToken: ${{ secrets.GITHUB_TOKEN }}
34
+ testMode: all
35
+
36
+ - name: Deactivate Unity License
37
+ if: always()
38
+ uses: game-ci/unity-return-license@v3
@@ -1,158 +1,158 @@
1
- namespace UnityHelpers.Editor
2
- {
3
- #if UNITY_EDITOR
4
- using System;
5
- using System.IO;
6
- using Core.Attributes;
7
- using Core.Extension;
8
- using UnityEditor;
9
- using UnityEngine;
10
- using Utils;
11
-
12
- public sealed class AnimationCopier : ScriptableWizard
13
- {
14
- private string _fullSourcePath;
15
- private string _fullDestinationPath;
16
-
17
- [ReadOnly]
18
- public string animationSourcePath;
19
-
20
- [ReadOnly]
21
- public string animationDestinationPath;
22
-
23
- [MenuItem("Tools/Unity Helpers/Animation Copier")]
24
- public static void CopyAnimations()
25
- {
26
- _ = DisplayWizard<AnimationCopier>("Animation Copier", "Copy");
27
- }
28
-
29
- protected override bool DrawWizardGUI()
30
- {
31
- bool returnValue = base.DrawWizardGUI();
32
-
33
- if (GUILayout.Button("Set Animation Source Path"))
34
- {
35
- string sourcePath = EditorUtility.OpenFolderPanel(
36
- "Select Animation Source Path",
37
- EditorUtilities.GetCurrentPathOfProjectWindow(),
38
- string.Empty
39
- );
40
- int assetIndex = sourcePath?.IndexOf("Assets", StringComparison.Ordinal) ?? -1;
41
- if (assetIndex < 0)
42
- {
43
- return false;
44
- }
45
-
46
- _fullSourcePath = animationSourcePath = sourcePath ?? string.Empty;
47
- animationSourcePath = animationSourcePath.Substring(assetIndex);
48
- return true;
49
- }
50
-
51
- if (GUILayout.Button("Set Animation Destination Path"))
52
- {
53
- string sourcePath = EditorUtility.OpenFolderPanel(
54
- "Select Animation Destination Path",
55
- EditorUtilities.GetCurrentPathOfProjectWindow(),
56
- string.Empty
57
- );
58
- int assetIndex = sourcePath?.IndexOf("Assets", StringComparison.Ordinal) ?? -1;
59
- if (assetIndex < 0)
60
- {
61
- return false;
62
- }
63
-
64
- _fullDestinationPath = animationDestinationPath = sourcePath ?? string.Empty;
65
- animationDestinationPath = animationDestinationPath.Substring(assetIndex);
66
- return true;
67
- }
68
-
69
- return returnValue;
70
- }
71
-
72
- private void OnWizardCreate()
73
- {
74
- if (string.IsNullOrEmpty(_fullSourcePath) || string.IsNullOrEmpty(_fullDestinationPath))
75
- {
76
- return;
77
- }
78
-
79
- if (
80
- string.IsNullOrEmpty(animationSourcePath)
81
- || string.IsNullOrEmpty(animationDestinationPath)
82
- )
83
- {
84
- return;
85
- }
86
-
87
- int processed = 0;
88
- foreach (
89
- string assetGuid in AssetDatabase.FindAssets(
90
- "t:AnimationClip",
91
- new[] { animationSourcePath }
92
- )
93
- )
94
- {
95
- string path = AssetDatabase.GUIDToAssetPath(assetGuid);
96
-
97
- AnimationClip animationClip = AssetDatabase.LoadAssetAtPath<AnimationClip>(path);
98
- if (animationClip == null)
99
- {
100
- this.LogError(
101
- "Invalid AnimationClip (null) found at path '{0}', skipping.",
102
- path
103
- );
104
- continue;
105
- }
106
-
107
- string prefix = animationClip.name;
108
- string relativePath = path.Substring(animationSourcePath.Length);
109
- int prefixIndex = relativePath.LastIndexOf(
110
- prefix,
111
- StringComparison.OrdinalIgnoreCase
112
- );
113
- if (prefixIndex < 0)
114
- {
115
- this.LogWarn(
116
- "Unsupported animation at '{0}', expected to be prefixed by '{1}'.",
117
- path,
118
- prefix
119
- );
120
- continue;
121
- }
122
-
123
- string partialPath = relativePath.Substring(0, prefixIndex);
124
- string outputPath = _fullDestinationPath + partialPath;
125
-
126
- if (!Directory.Exists(outputPath))
127
- {
128
- _ = Directory.CreateDirectory(outputPath);
129
- }
130
-
131
- string destination =
132
- animationDestinationPath + partialPath + relativePath.Substring(prefixIndex);
133
- bool copySuccessful = AssetDatabase.CopyAsset(path, destination);
134
- if (copySuccessful)
135
- {
136
- bool deleteSuccessful = AssetDatabase.DeleteAsset(path);
137
- if (!deleteSuccessful)
138
- {
139
- this.LogError("Failed to delete asset at path '{0}'.", path);
140
- }
141
-
142
- ++processed;
143
- }
144
- else
145
- {
146
- this.LogError(
147
- "Failed to copy animation from '{0}' to '{1}'.",
148
- path,
149
- destination
150
- );
151
- }
152
- }
153
-
154
- this.Log($"Processed {processed} AnimationClips.");
155
- }
156
- }
157
- #endif
158
- }
1
+ namespace UnityHelpers.Editor
2
+ {
3
+ #if UNITY_EDITOR
4
+ using System;
5
+ using System.IO;
6
+ using Core.Attributes;
7
+ using Core.Extension;
8
+ using UnityEditor;
9
+ using UnityEngine;
10
+ using Utils;
11
+
12
+ public sealed class AnimationCopier : ScriptableWizard
13
+ {
14
+ private string _fullSourcePath;
15
+ private string _fullDestinationPath;
16
+
17
+ [ReadOnly]
18
+ public string animationSourcePath;
19
+
20
+ [ReadOnly]
21
+ public string animationDestinationPath;
22
+
23
+ [MenuItem("Tools/Unity Helpers/Animation Copier")]
24
+ public static void CopyAnimations()
25
+ {
26
+ _ = DisplayWizard<AnimationCopier>("Animation Copier", "Copy");
27
+ }
28
+
29
+ protected override bool DrawWizardGUI()
30
+ {
31
+ bool returnValue = base.DrawWizardGUI();
32
+
33
+ if (GUILayout.Button("Set Animation Source Path"))
34
+ {
35
+ string sourcePath = EditorUtility.OpenFolderPanel(
36
+ "Select Animation Source Path",
37
+ EditorUtilities.GetCurrentPathOfProjectWindow(),
38
+ string.Empty
39
+ );
40
+ int assetIndex = sourcePath?.IndexOf("Assets", StringComparison.Ordinal) ?? -1;
41
+ if (assetIndex < 0)
42
+ {
43
+ return false;
44
+ }
45
+
46
+ _fullSourcePath = animationSourcePath = sourcePath ?? string.Empty;
47
+ animationSourcePath = animationSourcePath.Substring(assetIndex);
48
+ return true;
49
+ }
50
+
51
+ if (GUILayout.Button("Set Animation Destination Path"))
52
+ {
53
+ string sourcePath = EditorUtility.OpenFolderPanel(
54
+ "Select Animation Destination Path",
55
+ EditorUtilities.GetCurrentPathOfProjectWindow(),
56
+ string.Empty
57
+ );
58
+ int assetIndex = sourcePath?.IndexOf("Assets", StringComparison.Ordinal) ?? -1;
59
+ if (assetIndex < 0)
60
+ {
61
+ return false;
62
+ }
63
+
64
+ _fullDestinationPath = animationDestinationPath = sourcePath ?? string.Empty;
65
+ animationDestinationPath = animationDestinationPath.Substring(assetIndex);
66
+ return true;
67
+ }
68
+
69
+ return returnValue;
70
+ }
71
+
72
+ private void OnWizardCreate()
73
+ {
74
+ if (string.IsNullOrEmpty(_fullSourcePath) || string.IsNullOrEmpty(_fullDestinationPath))
75
+ {
76
+ return;
77
+ }
78
+
79
+ if (
80
+ string.IsNullOrEmpty(animationSourcePath)
81
+ || string.IsNullOrEmpty(animationDestinationPath)
82
+ )
83
+ {
84
+ return;
85
+ }
86
+
87
+ int processed = 0;
88
+ foreach (
89
+ string assetGuid in AssetDatabase.FindAssets(
90
+ "t:AnimationClip",
91
+ new[] { animationSourcePath }
92
+ )
93
+ )
94
+ {
95
+ string path = AssetDatabase.GUIDToAssetPath(assetGuid);
96
+
97
+ AnimationClip animationClip = AssetDatabase.LoadAssetAtPath<AnimationClip>(path);
98
+ if (animationClip == null)
99
+ {
100
+ this.LogError(
101
+ "Invalid AnimationClip (null) found at path '{0}', skipping.",
102
+ path
103
+ );
104
+ continue;
105
+ }
106
+
107
+ string prefix = animationClip.name;
108
+ string relativePath = path.Substring(animationSourcePath.Length);
109
+ int prefixIndex = relativePath.LastIndexOf(
110
+ prefix,
111
+ StringComparison.OrdinalIgnoreCase
112
+ );
113
+ if (prefixIndex < 0)
114
+ {
115
+ this.LogWarn(
116
+ "Unsupported animation at '{0}', expected to be prefixed by '{1}'.",
117
+ path,
118
+ prefix
119
+ );
120
+ continue;
121
+ }
122
+
123
+ string partialPath = relativePath.Substring(0, prefixIndex);
124
+ string outputPath = _fullDestinationPath + partialPath;
125
+
126
+ if (!Directory.Exists(outputPath))
127
+ {
128
+ _ = Directory.CreateDirectory(outputPath);
129
+ }
130
+
131
+ string destination =
132
+ animationDestinationPath + partialPath + relativePath.Substring(prefixIndex);
133
+ bool copySuccessful = AssetDatabase.CopyAsset(path, destination);
134
+ if (copySuccessful)
135
+ {
136
+ bool deleteSuccessful = AssetDatabase.DeleteAsset(path);
137
+ if (!deleteSuccessful)
138
+ {
139
+ this.LogError("Failed to delete asset at path '{0}'.", path);
140
+ }
141
+
142
+ ++processed;
143
+ }
144
+ else
145
+ {
146
+ this.LogError(
147
+ "Failed to copy animation from '{0}' to '{1}'.",
148
+ path,
149
+ destination
150
+ );
151
+ }
152
+ }
153
+
154
+ this.Log($"Processed {processed} AnimationClips.");
155
+ }
156
+ }
157
+ #endif
158
+ }
@@ -1,3 +1,3 @@
1
- fileFormatVersion: 2
2
- guid: 40462f0dd8a4429e983409e3374ae66e
1
+ fileFormatVersion: 2
2
+ guid: 40462f0dd8a4429e983409e3374ae66e
3
3
  timeCreated: 1720665801