com.wallstop-studios.unity-helpers 2.0.0-rc81.7 → 2.0.0-rc81.9

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 (1449) hide show
  1. package/.config/dotnet-tools.json +10 -10
  2. package/.csharpierignore +1 -0
  3. package/.csharpierrc.json +3 -0
  4. package/.editorconfig +184 -184
  5. package/.gitattributes +87 -63
  6. package/.githooks/pre-commit +49 -0
  7. package/.github/dependabot.yml +9 -9
  8. package/.github/workflows/csharpier.yml +135 -0
  9. package/.github/workflows/lint-doc-links.yml +27 -0
  10. package/.github/workflows/markdown-json.yml +41 -0
  11. package/.github/workflows/npm-publish.yml +75 -75
  12. package/.lychee.toml +26 -0
  13. package/.markdownlint.json +21 -0
  14. package/.markdownlintignore +8 -0
  15. package/.pre-commit-config.yaml +39 -22
  16. package/.prettierignore +22 -0
  17. package/.prettierrc.json +20 -0
  18. package/AGENTS.md +52 -0
  19. package/{Third Party Notices.md.meta → AGENTS.md.meta} +7 -7
  20. package/CHANGELOG.md.meta +7 -7
  21. package/DATA_STRUCTURES.md +324 -0
  22. package/DATA_STRUCTURES.md.meta +7 -0
  23. package/Docs/Images/attribute_resolution.svg +40 -0
  24. package/Docs/Images/attribute_resolution.svg.meta +7 -0
  25. package/Docs/Images/bitset.svg +47 -0
  26. package/Docs/Images/bitset.svg.meta +7 -0
  27. package/Docs/Images/concave_hull.svg +30 -0
  28. package/Docs/Images/concave_hull.svg.meta +7 -0
  29. package/Docs/Images/convex_hull.svg +29 -0
  30. package/Docs/Images/convex_hull.svg.meta +7 -0
  31. package/Docs/Images/cyclic_buffer.svg +37 -0
  32. package/Docs/Images/cyclic_buffer.svg.meta +7 -0
  33. package/Docs/Images/data_distribution_decision.svg +88 -0
  34. package/Docs/Images/data_distribution_decision.svg.meta +7 -0
  35. package/Docs/Images/deque.svg +64 -0
  36. package/Docs/Images/deque.svg.meta +7 -0
  37. package/Docs/Images/deque_queue.svg +107 -0
  38. package/Docs/Images/deque_queue.svg.meta +7 -0
  39. package/Docs/Images/disjoint_set.svg +47 -0
  40. package/Docs/Images/disjoint_set.svg.meta +7 -0
  41. package/Docs/Images/effects_pipeline.svg +59 -0
  42. package/Docs/Images/effects_pipeline.svg.meta +7 -0
  43. package/Docs/Images/geometry_edge_cases.svg +61 -0
  44. package/Docs/Images/geometry_edge_cases.svg.meta +7 -0
  45. package/Docs/Images/heap.svg +56 -0
  46. package/Docs/Images/heap.svg.meta +7 -0
  47. package/Docs/Images/kdtree_2d.svg +38 -0
  48. package/Docs/Images/kdtree_2d.svg.meta +7 -0
  49. package/Docs/Images/kdtree_3d.svg +83 -0
  50. package/Docs/Images/kdtree_3d.svg.meta +7 -0
  51. package/Docs/Images/octree_3d.svg +79 -0
  52. package/Docs/Images/octree_3d.svg.meta +7 -0
  53. package/Docs/Images/polyline_simplify.svg +18 -0
  54. package/Docs/Images/polyline_simplify.svg.meta +7 -0
  55. package/Docs/Images/quadtree_2d.svg +37 -0
  56. package/Docs/Images/quadtree_2d.svg.meta +7 -0
  57. package/Docs/Images/query_boundaries.svg +38 -0
  58. package/Docs/Images/query_boundaries.svg.meta +7 -0
  59. package/Docs/Images/random_generators.svg +105 -0
  60. package/Docs/Images/random_generators.svg.meta +7 -0
  61. package/Docs/Images/reflection_scan.svg +33 -0
  62. package/Docs/Images/reflection_scan.svg.meta +7 -0
  63. package/Docs/Images/relational_wiring.svg +75 -0
  64. package/Docs/Images/relational_wiring.svg.meta +7 -0
  65. package/Docs/Images/rtree_2d.svg +27 -0
  66. package/Docs/Images/rtree_2d.svg.meta +7 -0
  67. package/Docs/Images/rtree_3d.svg +79 -0
  68. package/Docs/Images/rtree_3d.svg.meta +7 -0
  69. package/Docs/Images/serialization_flow.svg +50 -0
  70. package/Docs/Images/serialization_flow.svg.meta +7 -0
  71. package/Docs/Images/singletons_lifecycle.svg +54 -0
  72. package/Docs/Images/singletons_lifecycle.svg.meta +7 -0
  73. package/Docs/Images/sparse_set.svg +54 -0
  74. package/Docs/Images/sparse_set.svg.meta +7 -0
  75. package/Docs/Images/trie.svg +55 -0
  76. package/Docs/Images/trie.svg.meta +7 -0
  77. package/Docs/Images.meta +8 -0
  78. package/Docs.meta +8 -0
  79. package/EDITOR_TOOLS_GUIDE.md +1976 -0
  80. package/EDITOR_TOOLS_GUIDE.md.meta +7 -0
  81. package/EFFECTS_SYSTEM.md +242 -0
  82. package/EFFECTS_SYSTEM.md.meta +7 -0
  83. package/EFFECTS_SYSTEM_TUTORIAL.md +467 -0
  84. package/EFFECTS_SYSTEM_TUTORIAL.md.meta +7 -0
  85. package/Editor/AnimationEventEditor.cs +1393 -874
  86. package/Editor/AnimationEventEditor.cs.meta +11 -11
  87. package/Editor/AssemblyInfo.cs +4 -0
  88. package/Editor/AssemblyInfo.cs.meta +3 -0
  89. package/Editor/AssetProcessors/SpriteLabelProcessor.cs +138 -111
  90. package/Editor/AssetProcessors/SpriteLabelProcessor.cs.meta +2 -2
  91. package/Editor/AssetProcessors.meta +2 -2
  92. package/Editor/Core/Helper/AnimationEventHelpers.cs +204 -0
  93. package/{Runtime/Core/DataStructure/ISpatialTree.cs.meta → Editor/Core/Helper/AnimationEventHelpers.cs.meta} +11 -11
  94. package/Editor/Core/Helper.meta +8 -0
  95. package/Editor/Core.meta +8 -0
  96. package/Editor/CustomDrawers/IntDropdownDrawer.cs +46 -46
  97. package/Editor/CustomDrawers/IntDropdownDrawer.cs.meta +2 -2
  98. package/Editor/CustomDrawers/StringInListeDrawer.cs +135 -135
  99. package/Editor/CustomDrawers/StringInListeDrawer.cs.meta +2 -2
  100. package/Editor/CustomDrawers/WShowIfPropertyDrawer.cs +105 -105
  101. package/Editor/CustomDrawers/WShowIfPropertyDrawer.cs.meta +2 -2
  102. package/Editor/CustomDrawers.meta +2 -2
  103. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs +32 -32
  104. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs.meta +2 -2
  105. package/Editor/CustomEditors/PersistentDirectoryGUI.cs +799 -799
  106. package/Editor/CustomEditors/PersistentDirectoryGUI.cs.meta +2 -2
  107. package/Editor/CustomEditors/PolygonCollider2DOptimizerEditor.cs +38 -40
  108. package/Editor/CustomEditors/PolygonCollider2DOptimizerEditor.cs.meta +2 -2
  109. package/Editor/CustomEditors/SourceFolderEntryDrawer.cs +685 -413
  110. package/Editor/CustomEditors/SourceFolderEntryDrawer.cs.meta +2 -2
  111. package/Editor/CustomEditors/TexturePlatformOverrideEntryDrawer.cs +146 -0
  112. package/{Runtime/Core/DataStructure/KDTree.cs.meta → Editor/CustomEditors/TexturePlatformOverrideEntryDrawer.cs.meta} +11 -11
  113. package/Editor/CustomEditors.meta +2 -2
  114. package/Editor/Extensions/SerializedPropertyExtensions.cs +217 -190
  115. package/Editor/Extensions/SerializedPropertyExtensions.cs.meta +2 -2
  116. package/Editor/Extensions/UnityExtensions.cs +50 -26
  117. package/Editor/Extensions/UnityExtensions.cs.meta +2 -2
  118. package/Editor/Extensions.meta +2 -2
  119. package/Editor/FitTextureSizeWindow.cs +785 -332
  120. package/Editor/FitTextureSizeWindow.cs.meta +2 -2
  121. package/Editor/Persistence/MultiFileSelectorPersistenceManager.cs +62 -0
  122. package/{Runtime/Core/DataStructure/QuadTree.cs.meta → Editor/Persistence/MultiFileSelectorPersistenceManager.cs.meta} +11 -11
  123. package/Editor/Persistence/MultiFileSelectorPersistenceWindow.cs +65 -0
  124. package/Editor/Persistence/MultiFileSelectorPersistenceWindow.cs.meta +11 -0
  125. package/Editor/Persistence.meta +8 -0
  126. package/Editor/PersistentDirectorySettings.cs +529 -248
  127. package/Editor/PersistentDirectorySettings.cs.meta +2 -2
  128. package/Editor/PrefabChecker.cs +1329 -741
  129. package/Editor/PrefabChecker.cs.meta +11 -11
  130. package/Editor/Sprites/AnimationCopier.cs +1518 -789
  131. package/Editor/Sprites/AnimationCopier.cs.meta +2 -2
  132. package/Editor/Sprites/AnimationCreator.cs +1532 -881
  133. package/Editor/Sprites/AnimationCreator.cs.meta +11 -11
  134. package/Editor/Sprites/AnimationViewerWindow.cs +1634 -1522
  135. package/Editor/Sprites/AnimationViewerWindow.cs.meta +2 -2
  136. package/Editor/Sprites/ScriptableSpriteAtlas.cs +251 -178
  137. package/Editor/Sprites/ScriptableSpriteAtlas.cs.meta +2 -2
  138. package/Editor/Sprites/ScriptableSpriteAtlasEditor.cs +1470 -1026
  139. package/Editor/Sprites/ScriptableSpriteAtlasEditor.cs.meta +2 -2
  140. package/Editor/Sprites/SpriteCropper.cs +1013 -523
  141. package/Editor/Sprites/SpriteCropper.cs.meta +2 -2
  142. package/Editor/Sprites/SpritePivotAdjustor.cs +605 -265
  143. package/Editor/Sprites/SpritePivotAdjustor.cs.meta +2 -2
  144. package/Editor/Sprites/SpriteSettingsApplier.cs +942 -918
  145. package/Editor/Sprites/SpriteSettingsApplier.cs.meta +2 -2
  146. package/Editor/Sprites/SpriteSettingsApplierAPI.cs +441 -0
  147. package/Editor/Sprites/SpriteSettingsApplierAPI.cs.meta +11 -0
  148. package/Editor/Sprites/SpriteSettingsProfileCollection.cs +12 -0
  149. package/Editor/Sprites/SpriteSettingsProfileCollection.cs.meta +11 -0
  150. package/Editor/Sprites/SpriteSheetAnimationCreator.cs +1586 -1537
  151. package/Editor/Sprites/SpriteSheetAnimationCreator.cs.meta +2 -2
  152. package/Editor/Sprites/TexturePlatformNameHelper.cs +78 -0
  153. package/Editor/Sprites/TexturePlatformNameHelper.cs.meta +11 -0
  154. package/Editor/Sprites/TextureResizerWizard.cs +434 -175
  155. package/Editor/Sprites/TextureResizerWizard.cs.meta +2 -2
  156. package/Editor/Sprites/TextureSettingsApplierAPI.cs +359 -0
  157. package/Editor/Sprites/TextureSettingsApplierAPI.cs.meta +11 -0
  158. package/Editor/Sprites/TextureSettingsApplierWindow.cs +605 -0
  159. package/Editor/Sprites/TextureSettingsApplierWindow.cs.meta +11 -0
  160. package/Editor/Sprites.meta +2 -2
  161. package/Editor/Styles/AnimationViewer.uss +115 -115
  162. package/Editor/Styles/AnimationViewer.uss.meta +2 -2
  163. package/Editor/Styles/AnimationViewer.uxml +56 -56
  164. package/Editor/Styles/AnimationViewer.uxml.meta +2 -2
  165. package/Editor/Styles/SpriteSheetAnimationCreator.uss +10 -0
  166. package/Editor/Styles/SpriteSheetAnimationCreator.uss.meta +11 -0
  167. package/Editor/Styles.meta +2 -2
  168. package/Editor/Tags/AttributeMetadataCacheEditor.cs +46 -0
  169. package/Editor/Tags/AttributeMetadataCacheEditor.cs.meta +11 -0
  170. package/Editor/Tags/AttributeMetadataCacheGenerator.cs +258 -0
  171. package/Editor/Tags/AttributeMetadataCacheGenerator.cs.meta +11 -0
  172. package/Editor/Tags.meta +8 -0
  173. package/Editor/Tools/ImageBlurTool.cs +451 -409
  174. package/Editor/Tools/ImageBlurTool.cs.meta +2 -2
  175. package/Editor/Tools.meta +2 -2
  176. package/Editor/Utils/DxReadOnlyPropertyDrawer.cs +26 -26
  177. package/Editor/Utils/DxReadOnlyPropertyDrawer.cs.meta +11 -11
  178. package/Editor/Utils/EditorUi.cs +228 -0
  179. package/Editor/Utils/EditorUi.cs.meta +11 -0
  180. package/Editor/Utils/EditorUtilities.cs +22 -22
  181. package/Editor/Utils/EditorUtilities.cs.meta +11 -11
  182. package/Editor/Utils/ScriptableObjectSingletonCreator.cs +633 -52
  183. package/Editor/Utils/ScriptableObjectSingletonCreator.cs.meta +2 -2
  184. package/Editor/Utils.meta +8 -8
  185. package/Editor/Visuals/EnhancedImageEditor.cs +160 -160
  186. package/Editor/Visuals/EnhancedImageEditor.cs.meta +11 -11
  187. package/Editor/Visuals.meta +2 -2
  188. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef +14 -18
  189. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef.meta +7 -7
  190. package/Editor.meta +8 -8
  191. package/GETTING_STARTED.md +425 -0
  192. package/GETTING_STARTED.md.meta +7 -0
  193. package/GLOSSARY.md +313 -0
  194. package/GLOSSARY.md.meta +7 -0
  195. package/HULLS.md +45 -0
  196. package/HULLS.md.meta +7 -0
  197. package/INDEX.md +429 -0
  198. package/INDEX.md.meta +7 -0
  199. package/LICENSE +21 -21
  200. package/LICENSE.md +7 -7
  201. package/LICENSE.md.meta +7 -7
  202. package/LICENSE.meta +7 -7
  203. package/MATH_AND_EXTENSIONS.md +316 -0
  204. package/MATH_AND_EXTENSIONS.md.meta +7 -0
  205. package/RANDOM_PERFORMANCE.md +140 -0
  206. package/RANDOM_PERFORMANCE.md.meta +7 -0
  207. package/README.md +3195 -188
  208. package/README.md.meta +7 -7
  209. package/REFLECTION_HELPERS.md +272 -0
  210. package/REFLECTION_HELPERS.md.meta +7 -0
  211. package/RELATIONAL_COMPONENTS.md +543 -0
  212. package/RELATIONAL_COMPONENTS.md.meta +7 -0
  213. package/Runtime/AssemblyInfo.cs +7 -0
  214. package/Runtime/AssemblyInfo.cs.meta +11 -0
  215. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll +0 -0
  216. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll.meta +33 -33
  217. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml +499 -278
  218. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml.meta +7 -7
  219. package/Runtime/Binaries/System.IO.Pipelines.dll +0 -0
  220. package/Runtime/Binaries/System.IO.Pipelines.dll.meta +33 -0
  221. package/Runtime/Binaries/System.IO.Pipelines.xml +702 -0
  222. package/Runtime/Binaries/System.IO.Pipelines.xml.meta +7 -0
  223. package/Runtime/Binaries/System.Text.Encodings.Web.dll +0 -0
  224. package/Runtime/Binaries/System.Text.Encodings.Web.dll.meta +33 -33
  225. package/Runtime/Binaries/System.Text.Encodings.Web.xml +1084 -1079
  226. package/Runtime/Binaries/System.Text.Encodings.Web.xml.meta +7 -7
  227. package/Runtime/Binaries/System.Text.Json.dll +0 -0
  228. package/Runtime/Binaries/System.Text.Json.dll.meta +33 -33
  229. package/Runtime/Binaries/System.Text.Json.xml +10217 -8116
  230. package/Runtime/Binaries/System.Text.Json.xml.meta +7 -7
  231. package/Runtime/Binaries.meta +8 -8
  232. package/Runtime/Core/Attributes/AnimationEventAttribute.cs +10 -138
  233. package/Runtime/Core/Attributes/AnimationEventAttribute.cs.meta +11 -11
  234. package/Runtime/Core/Attributes/BaseRelationalComponentAttribute.cs +841 -0
  235. package/Runtime/Core/Attributes/BaseRelationalComponentAttribute.cs.meta +11 -0
  236. package/Runtime/Core/Attributes/ChildComponentAttribute.cs +284 -226
  237. package/Runtime/Core/Attributes/ChildComponentAttribute.cs.meta +11 -11
  238. package/Runtime/Core/Attributes/DxReadOnlyAttribute.cs +6 -6
  239. package/Runtime/Core/Attributes/DxReadOnlyAttribute.cs.meta +11 -11
  240. package/Runtime/Core/Attributes/EnumDisplayNameAttribute.cs +15 -15
  241. package/Runtime/Core/Attributes/EnumDisplayNameAttribute.cs.meta +2 -2
  242. package/Runtime/Core/Attributes/IRelationalComponentAssigner.cs +36 -0
  243. package/Runtime/Core/Attributes/IRelationalComponentAssigner.cs.meta +11 -0
  244. package/Runtime/Core/Attributes/IntDropdownAttribute.cs +14 -14
  245. package/Runtime/Core/Attributes/IntDropdownAttribute.cs.meta +2 -2
  246. package/Runtime/Core/Attributes/KSerializableAttribute.cs +19 -19
  247. package/Runtime/Core/Attributes/KSerializableAttribute.cs.meta +11 -11
  248. package/Runtime/Core/Attributes/NotNullAttribute.cs +32 -32
  249. package/Runtime/Core/Attributes/NotNullAttribute.cs.meta +11 -11
  250. package/Runtime/Core/Attributes/ParentComponentAttribute.cs +376 -0
  251. package/Runtime/Core/Attributes/{ParentComponent.cs.meta → ParentComponentAttribute.cs.meta} +11 -11
  252. package/Runtime/Core/Attributes/RelationalComponentAssigner.cs +107 -0
  253. package/Runtime/Core/Attributes/RelationalComponentAssigner.cs.meta +11 -0
  254. package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +61 -14
  255. package/Runtime/Core/Attributes/RelationalComponentExtensions.cs.meta +11 -11
  256. package/Runtime/Core/Attributes/RelationalComponentInitializer.cs +331 -0
  257. package/Runtime/Core/Attributes/RelationalComponentInitializer.cs.meta +11 -0
  258. package/Runtime/Core/Attributes/ScriptableSingletonPathAttribute.cs +15 -15
  259. package/Runtime/Core/Attributes/ScriptableSingletonPathAttribute.cs.meta +2 -2
  260. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +264 -137
  261. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs.meta +11 -11
  262. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs +115 -106
  263. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs.meta +11 -11
  264. package/Runtime/Core/Attributes/ValueHelpers.cs +10 -0
  265. package/Runtime/Core/Attributes/ValueHelpers.cs.meta +3 -0
  266. package/Runtime/Core/Attributes/WShowIfAttribute.cs +24 -24
  267. package/Runtime/Core/Attributes/WShowIfAttribute.cs.meta +2 -2
  268. package/Runtime/Core/Attributes.meta +8 -8
  269. package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs +192 -92
  270. package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs.meta +11 -11
  271. package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs +268 -185
  272. package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs.meta +11 -11
  273. package/Runtime/Core/DataStructure/Adapters/KGuid.cs +360 -305
  274. package/Runtime/Core/DataStructure/Adapters/KGuid.cs.meta +11 -11
  275. package/Runtime/Core/DataStructure/Adapters/KVector2.cs +146 -80
  276. package/Runtime/Core/DataStructure/Adapters/KVector2.cs.meta +11 -11
  277. package/Runtime/Core/DataStructure/Adapters.meta +8 -8
  278. package/Runtime/Core/DataStructure/BitSet.cs +626 -0
  279. package/Runtime/Core/DataStructure/BitSet.cs.meta +11 -0
  280. package/Runtime/Core/DataStructure/BoundingBox3D.cs +405 -0
  281. package/Runtime/Core/DataStructure/BoundingBox3D.cs.meta +11 -0
  282. package/Runtime/Core/DataStructure/Circle.cs +203 -50
  283. package/Runtime/Core/DataStructure/Circle.cs.meta +11 -11
  284. package/Runtime/Core/DataStructure/CyclicBuffer.cs +489 -266
  285. package/Runtime/Core/DataStructure/CyclicBuffer.cs.meta +11 -11
  286. package/Runtime/Core/DataStructure/Deque.cs +561 -0
  287. package/Runtime/Core/DataStructure/Deque.cs.meta +11 -0
  288. package/Runtime/Core/DataStructure/DisjointSet.cs +483 -0
  289. package/Runtime/Core/DataStructure/DisjointSet.cs.meta +11 -0
  290. package/Runtime/Core/DataStructure/Heap.cs +514 -0
  291. package/Runtime/Core/DataStructure/Heap.cs.meta +11 -0
  292. package/Runtime/Core/DataStructure/{ISpatialTree.cs → ISpatialTree2D.cs} +25 -21
  293. package/Runtime/Core/DataStructure/ISpatialTree2D.cs.meta +11 -0
  294. package/Runtime/Core/DataStructure/ISpatialTree3D.cs +33 -0
  295. package/Runtime/Core/DataStructure/ISpatialTree3D.cs.meta +11 -0
  296. package/Runtime/Core/DataStructure/ImmutableBitSet.cs +398 -0
  297. package/Runtime/Core/DataStructure/ImmutableBitSet.cs.meta +3 -0
  298. package/Runtime/Core/DataStructure/KDTree2D.cs +852 -0
  299. package/Runtime/Core/DataStructure/KDTree2D.cs.meta +11 -0
  300. package/Runtime/Core/DataStructure/KDTree3D.cs +911 -0
  301. package/Runtime/Core/DataStructure/KDTree3D.cs.meta +11 -0
  302. package/Runtime/Core/DataStructure/OctTree3D.cs +983 -0
  303. package/Runtime/Core/DataStructure/OctTree3D.cs.meta +11 -0
  304. package/Runtime/Core/DataStructure/PriorityQueue.cs +194 -0
  305. package/Runtime/Core/DataStructure/PriorityQueue.cs.meta +11 -0
  306. package/Runtime/Core/DataStructure/QuadTree2D.cs +722 -0
  307. package/Runtime/Core/DataStructure/QuadTree2D.cs.meta +11 -0
  308. package/Runtime/Core/DataStructure/RTree2D.cs +704 -0
  309. package/Runtime/Core/DataStructure/{RTree.cs.meta → RTree2D.cs.meta} +11 -11
  310. package/Runtime/Core/DataStructure/RTree3D.cs +775 -0
  311. package/Runtime/Core/DataStructure/RTree3D.cs.meta +11 -0
  312. package/Runtime/Core/DataStructure/SparseSet.cs +597 -0
  313. package/Runtime/Core/DataStructure/SparseSet.cs.meta +11 -0
  314. package/Runtime/Core/DataStructure/SpatialHash2D.cs +312 -0
  315. package/Runtime/Core/DataStructure/SpatialHash2D.cs.meta +3 -0
  316. package/Runtime/Core/DataStructure/SpatialHash3D.cs +341 -0
  317. package/Runtime/Core/DataStructure/SpatialHash3D.cs.meta +11 -0
  318. package/Runtime/Core/DataStructure/Sphere.cs +264 -0
  319. package/Runtime/Core/DataStructure/Sphere.cs.meta +11 -0
  320. package/Runtime/Core/DataStructure/StringWrapper.cs +115 -91
  321. package/Runtime/Core/DataStructure/StringWrapper.cs.meta +11 -11
  322. package/Runtime/Core/DataStructure/TimedCache.cs +88 -66
  323. package/Runtime/Core/DataStructure/TimedCache.cs.meta +11 -11
  324. package/Runtime/Core/DataStructure/Trie.cs +660 -359
  325. package/Runtime/Core/DataStructure/Trie.cs.meta +2 -2
  326. package/Runtime/Core/DataStructure.meta +8 -8
  327. package/Runtime/Core/Extension/AnimatorExtensions.cs +40 -25
  328. package/Runtime/Core/Extension/AnimatorExtensions.cs.meta +11 -11
  329. package/Runtime/Core/Extension/AsyncOperationExtensions.cs +404 -110
  330. package/Runtime/Core/Extension/AsyncOperationExtensions.cs.meta +2 -2
  331. package/Runtime/Core/Extension/CircleExtensions.cs +125 -25
  332. package/Runtime/Core/Extension/CircleExtensions.cs.meta +11 -11
  333. package/Runtime/Core/Extension/ColorExtensions.cs +983 -644
  334. package/Runtime/Core/Extension/ColorExtensions.cs.meta +11 -11
  335. package/Runtime/Core/Extension/DictionaryExtensions.cs +606 -299
  336. package/Runtime/Core/Extension/DictionaryExtensions.cs.meta +11 -11
  337. package/Runtime/Core/Extension/DirectionExtensions.cs +377 -213
  338. package/Runtime/Core/Extension/DirectionExtensions.cs.meta +11 -11
  339. package/Runtime/Core/Extension/EnumExtensions.cs +535 -137
  340. package/Runtime/Core/Extension/EnumExtensions.cs.meta +2 -2
  341. package/Runtime/Core/Extension/IEnumerableExtensions.cs +341 -124
  342. package/Runtime/Core/Extension/IEnumerableExtensions.cs.meta +11 -11
  343. package/Runtime/Core/Extension/IListExtensions.cs +767 -248
  344. package/Runtime/Core/Extension/IListExtensions.cs.meta +11 -11
  345. package/Runtime/Core/Extension/IReadonlyListExtensions.cs +687 -37
  346. package/Runtime/Core/Extension/IReadonlyListExtensions.cs.meta +2 -2
  347. package/Runtime/Core/Extension/ProtoEqualityExtensions.cs +292 -0
  348. package/Runtime/Core/Extension/ProtoEqualityExtensions.cs.meta +3 -0
  349. package/Runtime/Core/Extension/RandomExtensions.cs +938 -109
  350. package/Runtime/Core/Extension/RandomExtensions.cs.meta +11 -11
  351. package/Runtime/Core/Extension/StringExtensions.cs +1635 -239
  352. package/Runtime/Core/Extension/StringExtensions.cs.meta +11 -11
  353. package/Runtime/Core/Extension/UnityExtensions.cs +4555 -1689
  354. package/Runtime/Core/Extension/UnityExtensions.cs.meta +11 -11
  355. package/Runtime/Core/Extension/WallstopStudiosLogger.cs +271 -245
  356. package/Runtime/Core/Extension/WallstopStudiosLogger.cs.meta +11 -11
  357. package/Runtime/Core/Extension.meta +8 -8
  358. package/Runtime/Core/Helper/ArrayConverter.cs +73 -39
  359. package/Runtime/Core/Helper/ArrayConverter.cs.meta +2 -2
  360. package/Runtime/Core/Helper/AssignUtilities.cs +33 -14
  361. package/Runtime/Core/Helper/AssignUtilities.cs.meta +11 -11
  362. package/Runtime/Core/Helper/DirectoryHelper.cs +210 -196
  363. package/Runtime/Core/Helper/DirectoryHelper.cs.meta +2 -2
  364. package/Runtime/Core/Helper/Enumerables.cs +51 -17
  365. package/Runtime/Core/Helper/Enumerables.cs.meta +11 -11
  366. package/Runtime/Core/Helper/FileHelper.cs +97 -77
  367. package/Runtime/Core/Helper/FileHelper.cs.meta +2 -2
  368. package/Runtime/Core/Helper/FormattingHelpers.cs +49 -38
  369. package/Runtime/Core/Helper/FormattingHelpers.cs.meta +2 -2
  370. package/Runtime/Core/Helper/FuncBasedComparer.cs +29 -0
  371. package/Runtime/Core/Helper/FuncBasedComparer.cs.meta +3 -0
  372. package/Runtime/Core/Helper/Geometry.cs +65 -43
  373. package/Runtime/Core/Helper/Geometry.cs.meta +11 -11
  374. package/Runtime/Core/Helper/Helpers.cs +1271 -831
  375. package/Runtime/Core/Helper/Helpers.cs.meta +11 -11
  376. package/Runtime/Core/Helper/IterationHelpers.cs +83 -32
  377. package/Runtime/Core/Helper/IterationHelpers.cs.meta +11 -11
  378. package/Runtime/Core/Helper/LifetimeHelpers.cs +20 -13
  379. package/Runtime/Core/Helper/LifetimeHelpers.cs.meta +11 -11
  380. package/Runtime/Core/Helper/LineHelper.cs +259 -194
  381. package/Runtime/Core/Helper/LineHelper.cs.meta +2 -2
  382. package/Runtime/Core/Helper/Logging/UnityLogTagFormatter.cs +549 -539
  383. package/Runtime/Core/Helper/Logging/UnityLogTagFormatter.cs.meta +2 -2
  384. package/Runtime/Core/Helper/Logging.meta +2 -2
  385. package/Runtime/Core/Helper/Objects.cs +477 -769
  386. package/Runtime/Core/Helper/Objects.cs.meta +11 -11
  387. package/Runtime/Core/Helper/Partials/LogHelpers.cs +13 -13
  388. package/Runtime/Core/Helper/Partials/LogHelpers.cs.meta +2 -2
  389. package/Runtime/Core/Helper/Partials/MathHelpers.cs +45 -30
  390. package/Runtime/Core/Helper/Partials/MathHelpers.cs.meta +2 -2
  391. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs +506 -400
  392. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs.meta +2 -2
  393. package/Runtime/Core/Helper/Partials/TransformHelpers.cs +393 -377
  394. package/Runtime/Core/Helper/Partials/TransformHelpers.cs.meta +2 -2
  395. package/Runtime/Core/Helper/Partials.meta +2 -2
  396. package/Runtime/Core/Helper/PathHelper.cs +42 -15
  397. package/Runtime/Core/Helper/PathHelper.cs.meta +2 -2
  398. package/Runtime/Core/Helper/ReflectionHelpers.cs +5287 -1963
  399. package/Runtime/Core/Helper/ReflectionHelpers.cs.meta +2 -2
  400. package/Runtime/Core/Helper/ReverseComparer.cs +33 -0
  401. package/Runtime/Core/Helper/ReverseComparer.cs.meta +3 -0
  402. package/Runtime/Core/Helper/SceneHelper.cs +251 -224
  403. package/Runtime/Core/Helper/SceneHelper.cs.meta +2 -2
  404. package/Runtime/Core/Helper/SpriteHelpers.cs +50 -41
  405. package/Runtime/Core/Helper/SpriteHelpers.cs.meta +11 -11
  406. package/Runtime/Core/Helper/StringInList.cs +61 -35
  407. package/Runtime/Core/Helper/StringInList.cs.meta +11 -11
  408. package/Runtime/Core/Helper/TestAssemblyHelper.cs +134 -0
  409. package/Runtime/Core/Helper/TestAssemblyHelper.cs.meta +11 -0
  410. package/Runtime/Core/Helper/UnityMainThreadDispatcher.cs +100 -82
  411. package/Runtime/Core/Helper/UnityMainThreadDispatcher.cs.meta +2 -2
  412. package/Runtime/Core/Helper/WallMath.cs +672 -166
  413. package/Runtime/Core/Helper/WallMath.cs.meta +11 -11
  414. package/Runtime/Core/Helper.meta +8 -8
  415. package/Runtime/Core/Math/Line2D.cs +263 -0
  416. package/Runtime/Core/Math/Line2D.cs.meta +11 -0
  417. package/Runtime/Core/Math/Line3D.cs +452 -0
  418. package/Runtime/Core/Math/Line3D.cs.meta +11 -0
  419. package/Runtime/Core/Math/Parabola.cs +241 -47
  420. package/Runtime/Core/Math/Parabola.cs.meta +11 -11
  421. package/Runtime/Core/Math/PointPolygonCheck.cs +175 -36
  422. package/Runtime/Core/Math/PointPolygonCheck.cs.meta +11 -11
  423. package/Runtime/Core/Math/Range.cs +157 -92
  424. package/Runtime/Core/Math/Range.cs.meta +11 -11
  425. package/Runtime/Core/Math.meta +8 -8
  426. package/Runtime/Core/Model/Direction.cs +25 -43
  427. package/Runtime/Core/Model/Direction.cs.meta +11 -11
  428. package/Runtime/Core/Model.meta +8 -8
  429. package/Runtime/Core/OneOf/FastOneOf.cs +252 -152
  430. package/Runtime/Core/OneOf/FastOneOf.cs.meta +11 -11
  431. package/Runtime/Core/OneOf/FastOneOf2.cs +198 -0
  432. package/Runtime/Core/OneOf/FastOneOf2.cs.meta +11 -0
  433. package/Runtime/Core/OneOf/FastOneOf4.cs +324 -0
  434. package/Runtime/Core/OneOf/FastOneOf4.cs.meta +11 -0
  435. package/Runtime/Core/OneOf/None.cs +30 -4
  436. package/Runtime/Core/OneOf/None.cs.meta +11 -11
  437. package/Runtime/Core/OneOf.meta +8 -8
  438. package/Runtime/Core/Random/AbstractRandom.cs +1318 -655
  439. package/Runtime/Core/Random/AbstractRandom.cs.meta +11 -11
  440. package/Runtime/Core/Random/DotNetRandom.cs +118 -54
  441. package/Runtime/Core/Random/DotNetRandom.cs.meta +2 -2
  442. package/Runtime/Core/Random/IRandom.cs +203 -161
  443. package/Runtime/Core/Random/IRandom.cs.meta +11 -11
  444. package/Runtime/Core/Random/IllusionFlow.cs +171 -107
  445. package/Runtime/Core/Random/IllusionFlow.cs.meta +2 -2
  446. package/Runtime/Core/Random/LinearCongruentialGenerator.cs +90 -49
  447. package/Runtime/Core/Random/LinearCongruentialGenerator.cs.meta +2 -2
  448. package/Runtime/Core/Random/NativePcgRandom.cs +139 -97
  449. package/Runtime/Core/Random/NativePcgRandom.cs.meta +11 -11
  450. package/Runtime/Core/Random/PRNG.cs +21 -7
  451. package/Runtime/Core/Random/PRNG.cs.meta +2 -2
  452. package/Runtime/Core/Random/PcgRandom.cs +243 -149
  453. package/Runtime/Core/Random/PcgRandom.cs.meta +11 -11
  454. package/Runtime/Core/Random/PerlinNoise.cs +369 -369
  455. package/Runtime/Core/Random/PerlinNoise.cs.meta +2 -2
  456. package/Runtime/Core/Random/RandomComparer.cs +34 -0
  457. package/Runtime/Core/Random/RandomComparer.cs.meta +3 -0
  458. package/Runtime/Core/Random/RandomState.cs +206 -131
  459. package/Runtime/Core/Random/RandomState.cs.meta +11 -11
  460. package/Runtime/Core/Random/RandomUtilities.cs +55 -26
  461. package/Runtime/Core/Random/RandomUtilities.cs.meta +11 -11
  462. package/Runtime/Core/Random/RomuDuo.cs +171 -116
  463. package/Runtime/Core/Random/RomuDuo.cs.meta +2 -2
  464. package/Runtime/Core/Random/SplitMix64.cs +134 -94
  465. package/Runtime/Core/Random/SplitMix64.cs.meta +2 -2
  466. package/Runtime/Core/Random/SquirrelRandom.cs +127 -84
  467. package/Runtime/Core/Random/SquirrelRandom.cs.meta +11 -11
  468. package/Runtime/Core/Random/SystemRandom.cs +203 -162
  469. package/Runtime/Core/Random/SystemRandom.cs.meta +11 -11
  470. package/Runtime/Core/Random/ThreadLocalRandom.cs +25 -12
  471. package/Runtime/Core/Random/ThreadLocalRandom.cs.meta +11 -11
  472. package/Runtime/Core/Random/UnityRandom.cs +109 -57
  473. package/Runtime/Core/Random/UnityRandom.cs.meta +11 -11
  474. package/Runtime/Core/Random/WyRandom.cs +158 -121
  475. package/Runtime/Core/Random/WyRandom.cs.meta +2 -2
  476. package/Runtime/Core/Random/XorShiftRandom.cs +106 -52
  477. package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -11
  478. package/Runtime/Core/Random/XoroShiroRandom.cs +184 -119
  479. package/Runtime/Core/Random/XoroShiroRandom.cs.meta +2 -2
  480. package/Runtime/Core/Random.meta +8 -8
  481. package/Runtime/Core/Serialization/JsonConverters/AnimationCurveConverter.cs +248 -0
  482. package/Runtime/Core/Serialization/JsonConverters/AnimationCurveConverter.cs.meta +11 -0
  483. package/Runtime/Core/Serialization/JsonConverters/BitSetConverter.cs +119 -0
  484. package/Runtime/Core/Serialization/JsonConverters/BitSetConverter.cs.meta +11 -0
  485. package/Runtime/Core/Serialization/JsonConverters/BoundingSphereConverter.cs +74 -0
  486. package/Runtime/Core/Serialization/JsonConverters/BoundingSphereConverter.cs.meta +11 -0
  487. package/Runtime/Core/Serialization/JsonConverters/BoundsConverter.cs +132 -0
  488. package/Runtime/Core/Serialization/JsonConverters/BoundsConverter.cs.meta +11 -0
  489. package/Runtime/Core/Serialization/JsonConverters/BoundsIntConverter.cs +135 -0
  490. package/Runtime/Core/Serialization/JsonConverters/BoundsIntConverter.cs.meta +11 -0
  491. package/Runtime/Core/Serialization/JsonConverters/Color32Converter.cs +98 -0
  492. package/Runtime/Core/Serialization/JsonConverters/Color32Converter.cs.meta +11 -0
  493. package/Runtime/Core/Serialization/JsonConverters/ColorBlockConverter.cs +123 -0
  494. package/Runtime/Core/Serialization/JsonConverters/ColorBlockConverter.cs.meta +11 -0
  495. package/Runtime/Core/Serialization/JsonConverters/ColorConverter.cs +88 -88
  496. package/Runtime/Core/Serialization/JsonConverters/ColorConverter.cs.meta +2 -2
  497. package/Runtime/Core/Serialization/JsonConverters/CyclicBufferConverterFactory.cs +112 -0
  498. package/Runtime/Core/Serialization/JsonConverters/CyclicBufferConverterFactory.cs.meta +11 -0
  499. package/Runtime/Core/Serialization/JsonConverters/DequeConverterFactory.cs +62 -0
  500. package/Runtime/Core/Serialization/JsonConverters/DequeConverterFactory.cs.meta +11 -0
  501. package/Runtime/Core/Serialization/JsonConverters/FastVector2IntConverter.cs +72 -0
  502. package/Runtime/Core/Serialization/JsonConverters/FastVector2IntConverter.cs.meta +11 -0
  503. package/Runtime/Core/Serialization/JsonConverters/FastVector3IntConverter.cs +80 -0
  504. package/Runtime/Core/Serialization/JsonConverters/FastVector3IntConverter.cs.meta +11 -0
  505. package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs +36 -36
  506. package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs.meta +2 -2
  507. package/Runtime/Core/Serialization/JsonConverters/GradientConverter.cs +245 -0
  508. package/Runtime/Core/Serialization/JsonConverters/GradientConverter.cs.meta +11 -0
  509. package/Runtime/Core/Serialization/JsonConverters/Hash128Converter.cs +92 -0
  510. package/Runtime/Core/Serialization/JsonConverters/Hash128Converter.cs.meta +11 -0
  511. package/Runtime/Core/Serialization/JsonConverters/ImmutableBitSetConverter.cs +119 -0
  512. package/Runtime/Core/Serialization/JsonConverters/ImmutableBitSetConverter.cs.meta +11 -0
  513. package/Runtime/Core/Serialization/JsonConverters/KVector2Converter.cs +72 -0
  514. package/Runtime/Core/Serialization/JsonConverters/KVector2Converter.cs.meta +11 -0
  515. package/Runtime/Core/Serialization/JsonConverters/LayerMaskConverter.cs +95 -0
  516. package/Runtime/Core/Serialization/JsonConverters/LayerMaskConverter.cs.meta +11 -0
  517. package/Runtime/Core/Serialization/JsonConverters/Matrix4x4Converter.cs +237 -218
  518. package/Runtime/Core/Serialization/JsonConverters/Matrix4x4Converter.cs.meta +2 -2
  519. package/Runtime/Core/Serialization/JsonConverters/MinMaxCurveConverter.cs +142 -0
  520. package/Runtime/Core/Serialization/JsonConverters/MinMaxCurveConverter.cs.meta +11 -0
  521. package/Runtime/Core/Serialization/JsonConverters/MinMaxGradientConverter.cs +135 -0
  522. package/Runtime/Core/Serialization/JsonConverters/MinMaxGradientConverter.cs.meta +11 -0
  523. package/Runtime/Core/Serialization/JsonConverters/PlaneConverter.cs +79 -0
  524. package/Runtime/Core/Serialization/JsonConverters/PlaneConverter.cs.meta +11 -0
  525. package/Runtime/Core/Serialization/JsonConverters/PoseConverter.cs +76 -0
  526. package/Runtime/Core/Serialization/JsonConverters/PoseConverter.cs.meta +11 -0
  527. package/Runtime/Core/Serialization/JsonConverters/QuaternionConverter.cs +88 -0
  528. package/Runtime/Core/Serialization/JsonConverters/QuaternionConverter.cs.meta +11 -0
  529. package/Runtime/Core/Serialization/JsonConverters/RangeConverterFactory.cs +106 -0
  530. package/Runtime/Core/Serialization/JsonConverters/RangeConverterFactory.cs.meta +11 -0
  531. package/Runtime/Core/Serialization/JsonConverters/RangeIntConverter.cs +71 -0
  532. package/Runtime/Core/Serialization/JsonConverters/RangeIntConverter.cs.meta +11 -0
  533. package/Runtime/Core/Serialization/JsonConverters/Ray2DConverter.cs +80 -0
  534. package/Runtime/Core/Serialization/JsonConverters/Ray2DConverter.cs.meta +11 -0
  535. package/Runtime/Core/Serialization/JsonConverters/RayConverter.cs +76 -0
  536. package/Runtime/Core/Serialization/JsonConverters/RayConverter.cs.meta +11 -0
  537. package/Runtime/Core/Serialization/JsonConverters/RaycastHitConverter.cs +115 -0
  538. package/Runtime/Core/Serialization/JsonConverters/RaycastHitConverter.cs.meta +11 -0
  539. package/Runtime/Core/Serialization/JsonConverters/RectConverter.cs +84 -0
  540. package/Runtime/Core/Serialization/JsonConverters/RectConverter.cs.meta +11 -0
  541. package/Runtime/Core/Serialization/JsonConverters/RectIntConverter.cs +88 -0
  542. package/Runtime/Core/Serialization/JsonConverters/RectIntConverter.cs.meta +11 -0
  543. package/Runtime/Core/Serialization/JsonConverters/RectOffsetConverter.cs +87 -0
  544. package/Runtime/Core/Serialization/JsonConverters/RectOffsetConverter.cs.meta +11 -0
  545. package/Runtime/Core/Serialization/JsonConverters/RenderTextureDescriptorConverter.cs +264 -0
  546. package/Runtime/Core/Serialization/JsonConverters/RenderTextureDescriptorConverter.cs.meta +11 -0
  547. package/Runtime/Core/Serialization/JsonConverters/ResolutionConverter.cs +158 -0
  548. package/Runtime/Core/Serialization/JsonConverters/ResolutionConverter.cs.meta +11 -0
  549. package/Runtime/Core/Serialization/JsonConverters/SceneConverter.cs +103 -0
  550. package/Runtime/Core/Serialization/JsonConverters/SceneConverter.cs.meta +11 -0
  551. package/Runtime/Core/Serialization/JsonConverters/SphericalHarmonicsL2Converter.cs +121 -0
  552. package/Runtime/Core/Serialization/JsonConverters/SphericalHarmonicsL2Converter.cs.meta +11 -0
  553. package/Runtime/Core/Serialization/JsonConverters/TouchConverter.cs +54 -0
  554. package/Runtime/Core/Serialization/JsonConverters/TouchConverter.cs.meta +11 -0
  555. package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs +30 -28
  556. package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs.meta +2 -2
  557. package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +72 -74
  558. package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs.meta +11 -11
  559. package/Runtime/Core/Serialization/JsonConverters/Vector2IntConverter.cs +72 -0
  560. package/Runtime/Core/Serialization/JsonConverters/Vector2IntConverter.cs.meta +11 -0
  561. package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +80 -81
  562. package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs.meta +11 -11
  563. package/Runtime/Core/Serialization/JsonConverters/Vector3IntConverter.cs +80 -0
  564. package/Runtime/Core/Serialization/JsonConverters/Vector3IntConverter.cs.meta +11 -0
  565. package/Runtime/Core/Serialization/JsonConverters/Vector4Converter.cs +88 -88
  566. package/Runtime/Core/Serialization/JsonConverters/Vector4Converter.cs.meta +2 -2
  567. package/Runtime/Core/Serialization/JsonConverters.meta +8 -8
  568. package/Runtime/Core/Serialization/ProtobufUnitySurrogates.cs +383 -0
  569. package/Runtime/Core/Serialization/ProtobufUnitySurrogates.cs.meta +11 -0
  570. package/Runtime/Core/Serialization/Serializer.cs +2020 -195
  571. package/Runtime/Core/Serialization/Serializer.cs.meta +11 -11
  572. package/Runtime/Core/Serialization.meta +8 -8
  573. package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +228 -228
  574. package/Runtime/Core/Threading/SingleThreadedThreadPool.cs.meta +11 -11
  575. package/Runtime/Core/Threading.meta +8 -8
  576. package/Runtime/Core.meta +8 -8
  577. package/Runtime/Integrations/VContainer/ObjectResolverRelationalExtensions.cs +185 -0
  578. package/Runtime/Integrations/VContainer/ObjectResolverRelationalExtensions.cs.meta +11 -0
  579. package/Runtime/Integrations/VContainer/RelationalComponentEntryPoint.cs +109 -0
  580. package/Runtime/Integrations/VContainer/RelationalComponentEntryPoint.cs.meta +11 -0
  581. package/Runtime/Integrations/VContainer/RelationalComponentsBuilderExtensions.cs +78 -0
  582. package/Runtime/Integrations/VContainer/RelationalComponentsBuilderExtensions.cs.meta +11 -0
  583. package/Runtime/Integrations/VContainer/RelationalSceneAssignmentOptions.cs +83 -0
  584. package/Runtime/Integrations/VContainer/RelationalSceneAssignmentOptions.cs.meta +11 -0
  585. package/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Integration.VContainer.asmdef +30 -0
  586. package/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Integration.VContainer.asmdef.meta +7 -0
  587. package/Runtime/Integrations/VContainer.meta +8 -0
  588. package/Runtime/Integrations/Zenject/DiContainerRelationalExtensions.cs +180 -0
  589. package/Runtime/Integrations/Zenject/DiContainerRelationalExtensions.cs.meta +11 -0
  590. package/Runtime/Integrations/Zenject/RelationalComponentSceneInitializer.cs +105 -0
  591. package/Runtime/Integrations/Zenject/RelationalComponentSceneInitializer.cs.meta +11 -0
  592. package/Runtime/Integrations/Zenject/RelationalComponentsInstaller.cs +72 -0
  593. package/Runtime/Integrations/Zenject/RelationalComponentsInstaller.cs.meta +11 -0
  594. package/Runtime/Integrations/Zenject/RelationalSceneAssignmentOptions.cs +87 -0
  595. package/Runtime/Integrations/Zenject/RelationalSceneAssignmentOptions.cs.meta +11 -0
  596. package/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Integration.Zenject.asmdef +30 -0
  597. package/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Integration.Zenject.asmdef.meta +7 -0
  598. package/Runtime/Integrations/Zenject.meta +8 -0
  599. package/Runtime/Integrations.meta +8 -0
  600. package/Runtime/Protobuf-Net/System.Collections.Immutable.dll.meta +33 -33
  601. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll.meta +33 -33
  602. package/Runtime/Protobuf-Net/protobuf-net.Core.dll.meta +33 -33
  603. package/Runtime/Protobuf-Net/protobuf-net.dll.meta +33 -33
  604. package/Runtime/Protobuf-Net.meta +8 -8
  605. package/Runtime/Tags/AlwaysIncludeInAttributeMetadataCacheAttribute.cs +11 -0
  606. package/Runtime/Tags/AlwaysIncludeInAttributeMetadataCacheAttribute.cs.meta +11 -0
  607. package/Runtime/Tags/Attribute.cs +399 -205
  608. package/Runtime/Tags/Attribute.cs.meta +2 -2
  609. package/Runtime/Tags/AttributeEffect.cs +372 -281
  610. package/Runtime/Tags/AttributeEffect.cs.meta +2 -2
  611. package/Runtime/Tags/AttributeMetadataCache.cs +503 -0
  612. package/Runtime/Tags/AttributeMetadataCache.cs.meta +11 -0
  613. package/Runtime/Tags/AttributeMetadataFilters.cs +108 -0
  614. package/Runtime/Tags/AttributeMetadataFilters.cs.meta +11 -0
  615. package/Runtime/Tags/AttributeModification.cs +132 -48
  616. package/Runtime/Tags/AttributeModification.cs.meta +2 -2
  617. package/Runtime/Tags/AttributeUtilities.cs +376 -209
  618. package/Runtime/Tags/AttributeUtilities.cs.meta +2 -2
  619. package/Runtime/Tags/AttributesComponent.cs +237 -163
  620. package/Runtime/Tags/AttributesComponent.cs.meta +2 -2
  621. package/Runtime/Tags/CollisionSenses.cs +117 -91
  622. package/Runtime/Tags/CollisionSenses.cs.meta +2 -2
  623. package/Runtime/Tags/CosmeticEffectComponent.cs +112 -50
  624. package/Runtime/Tags/CosmeticEffectComponent.cs.meta +2 -2
  625. package/Runtime/Tags/CosmeticEffectData.cs +109 -63
  626. package/Runtime/Tags/CosmeticEffectData.cs.meta +2 -2
  627. package/Runtime/Tags/EffectHandle.cs +150 -65
  628. package/Runtime/Tags/EffectHandle.cs.meta +2 -2
  629. package/Runtime/Tags/EffectHandler.cs +470 -393
  630. package/Runtime/Tags/EffectHandler.cs.meta +2 -2
  631. package/Runtime/Tags/ModificationAction.cs +60 -9
  632. package/Runtime/Tags/ModificationAction.cs.meta +2 -2
  633. package/Runtime/Tags/ModifierDurationType.cs +71 -13
  634. package/Runtime/Tags/ModifierDurationType.cs.meta +2 -2
  635. package/Runtime/Tags/TagHandler.cs +373 -158
  636. package/Runtime/Tags/TagHandler.cs.meta +2 -2
  637. package/Runtime/Tags.meta +2 -2
  638. package/Runtime/Utils/AnimationEventEqualityComparer.cs +198 -161
  639. package/Runtime/Utils/AnimationEventEqualityComparer.cs.meta +11 -11
  640. package/Runtime/Utils/AnimatorEnumStateMachine.cs +110 -88
  641. package/Runtime/Utils/AnimatorEnumStateMachine.cs.meta +11 -11
  642. package/Runtime/Utils/Ascii85.cs +132 -115
  643. package/Runtime/Utils/Ascii85.cs.meta +2 -2
  644. package/Runtime/Utils/Buffers.cs +1151 -550
  645. package/Runtime/Utils/Buffers.cs.meta +11 -11
  646. package/Runtime/Utils/CenterPointOffset.cs +35 -30
  647. package/Runtime/Utils/CenterPointOffset.cs.meta +2 -2
  648. package/Runtime/Utils/ChildSpawner.cs +250 -157
  649. package/Runtime/Utils/ChildSpawner.cs.meta +2 -2
  650. package/Runtime/Utils/CircleLineRenderer.cs +142 -142
  651. package/Runtime/Utils/CircleLineRenderer.cs.meta +11 -11
  652. package/Runtime/Utils/CollisionProxy.cs +48 -48
  653. package/Runtime/Utils/CollisionProxy.cs.meta +2 -2
  654. package/Runtime/Utils/CoroutineHandler.cs +4 -4
  655. package/Runtime/Utils/CoroutineHandler.cs.meta +2 -2
  656. package/Runtime/Utils/DeferredDisposalResult.cs +20 -23
  657. package/Runtime/Utils/DeferredDisposalResult.cs.meta +2 -2
  658. package/Runtime/Utils/LZMA.cs +276 -53
  659. package/Runtime/Utils/LZMA.cs.meta +2 -2
  660. package/Runtime/Utils/MatchColliderToSprite.cs +104 -104
  661. package/Runtime/Utils/MatchColliderToSprite.cs.meta +2 -2
  662. package/Runtime/Utils/MatchTransform.cs +99 -82
  663. package/Runtime/Utils/MatchTransform.cs.meta +2 -2
  664. package/Runtime/Utils/Oscillator.cs +27 -27
  665. package/Runtime/Utils/Oscillator.cs.meta +11 -11
  666. package/Runtime/Utils/PolygonCollider2DOptimizer.cs +104 -83
  667. package/Runtime/Utils/PolygonCollider2DOptimizer.cs.meta +2 -2
  668. package/Runtime/Utils/RuntimeSingleton.cs +139 -89
  669. package/Runtime/Utils/RuntimeSingleton.cs.meta +11 -11
  670. package/Runtime/Utils/ScriptableObjectSingleton.cs +226 -85
  671. package/Runtime/Utils/ScriptableObjectSingleton.cs.meta +2 -2
  672. package/Runtime/Utils/SerializedStringComparer.cs +107 -107
  673. package/Runtime/Utils/SerializedStringComparer.cs.meta +2 -2
  674. package/Runtime/Utils/SetTextureImportData.cs +69 -69
  675. package/Runtime/Utils/SetTextureImportData.cs.meta +11 -11
  676. package/Runtime/Utils/SevenZip/Common/CRC.cs +70 -70
  677. package/Runtime/Utils/SevenZip/Common/CRC.cs.meta +11 -11
  678. package/Runtime/Utils/SevenZip/Common/InBuffer.cs +84 -84
  679. package/Runtime/Utils/SevenZip/Common/InBuffer.cs.meta +11 -11
  680. package/Runtime/Utils/SevenZip/Common/OutBuffer.cs +70 -70
  681. package/Runtime/Utils/SevenZip/Common/OutBuffer.cs.meta +11 -11
  682. package/Runtime/Utils/SevenZip/Common.meta +2 -2
  683. package/Runtime/Utils/SevenZip/Compress/LZ/IMatchFinder.cs +28 -28
  684. package/Runtime/Utils/SevenZip/Compress/LZ/IMatchFinder.cs.meta +11 -11
  685. package/Runtime/Utils/SevenZip/Compress/LZ/LzBinTree.cs +454 -454
  686. package/Runtime/Utils/SevenZip/Compress/LZ/LzBinTree.cs.meta +11 -11
  687. package/Runtime/Utils/SevenZip/Compress/LZ/LzInWindow.cs +179 -179
  688. package/Runtime/Utils/SevenZip/Compress/LZ/LzInWindow.cs.meta +11 -11
  689. package/Runtime/Utils/SevenZip/Compress/LZ/LzOutWindow.cs +137 -137
  690. package/Runtime/Utils/SevenZip/Compress/LZ/LzOutWindow.cs.meta +11 -11
  691. package/Runtime/Utils/SevenZip/Compress/LZ.meta +8 -8
  692. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaBase.cs +110 -110
  693. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaBase.cs.meta +11 -11
  694. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaDecoder.cs +525 -527
  695. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaDecoder.cs.meta +11 -11
  696. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaEncoder.cs +1891 -1904
  697. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaEncoder.cs.meta +11 -11
  698. package/Runtime/Utils/SevenZip/Compress/LZMA.meta +8 -8
  699. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoder.cs +242 -242
  700. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoder.cs.meta +11 -11
  701. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBit.cs +146 -149
  702. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBit.cs.meta +11 -11
  703. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBitTree.cs +177 -177
  704. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBitTree.cs.meta +11 -11
  705. package/Runtime/Utils/SevenZip/Compress/RangeCoder.meta +8 -8
  706. package/Runtime/Utils/SevenZip/Compress.meta +8 -8
  707. package/Runtime/Utils/SevenZip/ICoder.cs +177 -177
  708. package/Runtime/Utils/SevenZip/ICoder.cs.meta +11 -11
  709. package/Runtime/Utils/SevenZip.meta +2 -2
  710. package/Runtime/Utils/SpriteRendererMetadata.cs +346 -370
  711. package/Runtime/Utils/SpriteRendererMetadata.cs.meta +2 -2
  712. package/Runtime/Utils/SpriteRendererSyncer.cs +100 -100
  713. package/Runtime/Utils/SpriteRendererSyncer.cs.meta +2 -2
  714. package/Runtime/Utils/StartTracker.cs +15 -15
  715. package/Runtime/Utils/StartTracker.cs.meta +2 -2
  716. package/Runtime/Utils/TextureScale.cs +356 -179
  717. package/Runtime/Utils/TextureScale.cs.meta +2 -2
  718. package/Runtime/Utils/TypeNameSorter.cs +17 -17
  719. package/Runtime/Utils/TypeNameSorter.cs.meta +2 -2
  720. package/Runtime/Utils/UnityObjectNameComparer.cs +89 -89
  721. package/Runtime/Utils/UnityObjectNameComparer.cs.meta +2 -2
  722. package/Runtime/Utils.meta +8 -8
  723. package/Runtime/Visuals/AnimatedSpriteLayer.cs +217 -130
  724. package/Runtime/Visuals/AnimatedSpriteLayer.cs.meta +2 -2
  725. package/Runtime/Visuals/UGUI/EnhancedImage.cs +218 -85
  726. package/Runtime/Visuals/UGUI/EnhancedImage.cs.meta +2 -2
  727. package/Runtime/Visuals/UGUI.meta +2 -2
  728. package/Runtime/Visuals/UIToolkit/LayeredImage.cs +781 -484
  729. package/Runtime/Visuals/UIToolkit/LayeredImage.cs.meta +2 -2
  730. package/Runtime/Visuals/UIToolkit/MultiFileSelectorElement.cs +945 -322
  731. package/Runtime/Visuals/UIToolkit/MultiFileSelectorElement.cs.meta +2 -2
  732. package/Runtime/Visuals/UIToolkit.meta +2 -2
  733. package/Runtime/Visuals.meta +2 -2
  734. package/Runtime/WallstopStudios.UnityHelpers.asmdef +22 -14
  735. package/Runtime/WallstopStudios.UnityHelpers.asmdef.meta +7 -7
  736. package/Runtime.meta +8 -8
  737. package/SERIALIZATION.md +648 -0
  738. package/SERIALIZATION.md.meta +7 -0
  739. package/SINGLETONS.md +427 -0
  740. package/SINGLETONS.md.meta +7 -0
  741. package/SPATIAL_TREES_2D_GUIDE.md +261 -0
  742. package/SPATIAL_TREES_2D_GUIDE.md.meta +7 -0
  743. package/SPATIAL_TREES_3D_GUIDE.md +214 -0
  744. package/SPATIAL_TREES_3D_GUIDE.md.meta +7 -0
  745. package/SPATIAL_TREE_2D_PERFORMANCE.md +238 -0
  746. package/SPATIAL_TREE_2D_PERFORMANCE.md.meta +7 -0
  747. package/SPATIAL_TREE_3D_PERFORMANCE.md +240 -0
  748. package/SPATIAL_TREE_3D_PERFORMANCE.md.meta +7 -0
  749. package/SPATIAL_TREE_SEMANTICS.md +106 -0
  750. package/SPATIAL_TREE_SEMANTICS.md.meta +7 -0
  751. package/Samples~/DI - VContainer/Prefabs/RelationalConsumer.prefab +77 -0
  752. package/Samples~/DI - VContainer/Prefabs/RelationalConsumer.prefab.meta +8 -0
  753. package/Samples~/DI - VContainer/Prefabs/Spawner.prefab +47 -0
  754. package/Samples~/DI - VContainer/Prefabs/Spawner.prefab.meta +8 -0
  755. package/Samples~/DI - VContainer/Prefabs.meta +9 -0
  756. package/Samples~/DI - VContainer/README.md +334 -0
  757. package/Samples~/DI - VContainer/README.md.meta +8 -0
  758. package/Samples~/DI - VContainer/Scenes/VContainer_Sample.unity +120 -0
  759. package/Samples~/DI - VContainer/Scenes/VContainer_Sample.unity.meta +8 -0
  760. package/Samples~/DI - VContainer/Scenes.meta +9 -0
  761. package/Samples~/DI - VContainer/Scripts/GameLifetimeScope.cs +24 -0
  762. package/Samples~/DI - VContainer/Scripts/GameLifetimeScope.cs.meta +12 -0
  763. package/Samples~/DI - VContainer/Scripts/RelationalConsumer.cs +21 -0
  764. package/Samples~/DI - VContainer/Scripts/RelationalConsumer.cs.meta +12 -0
  765. package/Samples~/DI - VContainer/Scripts/Samples.UnityHelpers.DI.VContainer.asmdef +37 -0
  766. package/Samples~/DI - VContainer/Scripts/Samples.UnityHelpers.DI.VContainer.asmdef.meta +8 -0
  767. package/Samples~/DI - VContainer/Scripts/Spawner.cs +21 -0
  768. package/Samples~/DI - VContainer/Scripts/Spawner.cs.meta +12 -0
  769. package/Samples~/DI - VContainer/Scripts.meta +9 -0
  770. package/Samples~/DI - VContainer.meta +9 -0
  771. package/Samples~/DI - Zenject/Prefabs/RelationalConsumer.prefab +77 -0
  772. package/Samples~/DI - Zenject/Prefabs/RelationalConsumer.prefab.meta +8 -0
  773. package/Samples~/DI - Zenject/Prefabs/SpawnerZenject.prefab +47 -0
  774. package/Samples~/DI - Zenject/Prefabs/SpawnerZenject.prefab.meta +8 -0
  775. package/Samples~/DI - Zenject/Prefabs.meta +9 -0
  776. package/Samples~/DI - Zenject/README.md +389 -0
  777. package/Samples~/DI - Zenject/README.md.meta +7 -0
  778. package/Samples~/DI - Zenject/Scenes/Zenject_Sample.unity +164 -0
  779. package/Samples~/DI - Zenject/Scenes/Zenject_Sample.unity.meta +8 -0
  780. package/Samples~/DI - Zenject/Scenes.meta +9 -0
  781. package/Samples~/DI - Zenject/Scripts/RelationalConsumer.cs +19 -0
  782. package/Samples~/DI - Zenject/Scripts/RelationalConsumer.cs.meta +12 -0
  783. package/Samples~/DI - Zenject/Scripts/Samples.UnityHelpers.DI.Zenject.asmdef +36 -0
  784. package/Samples~/DI - Zenject/Scripts/Samples.UnityHelpers.DI.Zenject.asmdef.meta +8 -0
  785. package/Samples~/DI - Zenject/Scripts/SceneContextPlaceholder.cs +47 -0
  786. package/Samples~/DI - Zenject/Scripts/SceneContextPlaceholder.cs.meta +12 -0
  787. package/Samples~/DI - Zenject/Scripts/SpawnerZenject.cs +20 -0
  788. package/Samples~/DI - Zenject/Scripts/SpawnerZenject.cs.meta +12 -0
  789. package/Samples~/DI - Zenject/Scripts.meta +9 -0
  790. package/Samples~/DI - Zenject.meta +9 -0
  791. package/Samples~/Random - PRNG/README.md +12 -0
  792. package/Samples~/Random - PRNG/README.md.meta +8 -0
  793. package/Samples~/Random - PRNG/Scripts/RandomPrngDemo.cs +28 -0
  794. package/Samples~/Random - PRNG/Scripts/RandomPrngDemo.cs.meta +12 -0
  795. package/Samples~/Random - PRNG/Scripts/Samples.UnityHelpers.Random.Prng.asmdef +17 -0
  796. package/Samples~/Random - PRNG/Scripts/Samples.UnityHelpers.Random.Prng.asmdef.meta +8 -0
  797. package/Samples~/Random - PRNG/Scripts.meta +9 -0
  798. package/Samples~/Random - PRNG.meta +9 -0
  799. package/Samples~/Relational Components - Basic/README.md +19 -0
  800. package/Samples~/Relational Components - Basic/README.md.meta +8 -0
  801. package/Samples~/Relational Components - Basic/Scripts/RelationalBasicConsumer.cs +37 -0
  802. package/Samples~/Relational Components - Basic/Scripts/RelationalBasicConsumer.cs.meta +12 -0
  803. package/Samples~/Relational Components - Basic/Scripts/Samples.UnityHelpers.Relational.Basic.asmdef +17 -0
  804. package/Samples~/Relational Components - Basic/Scripts/Samples.UnityHelpers.Relational.Basic.asmdef.meta +8 -0
  805. package/Samples~/Relational Components - Basic/Scripts.meta +9 -0
  806. package/Samples~/Relational Components - Basic.meta +9 -0
  807. package/Samples~/Serialization - JSON/README.md +13 -0
  808. package/Samples~/Serialization - JSON/README.md.meta +8 -0
  809. package/Samples~/Serialization - JSON/Scripts/JsonSerializationDemo.cs +50 -0
  810. package/Samples~/Serialization - JSON/Scripts/JsonSerializationDemo.cs.meta +12 -0
  811. package/Samples~/Serialization - JSON/Scripts/Samples.UnityHelpers.Serialization.Json.asmdef +17 -0
  812. package/Samples~/Serialization - JSON/Scripts/Samples.UnityHelpers.Serialization.Json.asmdef.meta +8 -0
  813. package/Samples~/Serialization - JSON/Scripts.meta +9 -0
  814. package/Samples~/Serialization - JSON.meta +9 -0
  815. package/Samples~/Spatial Structures - 2D and 3D/README.md +13 -0
  816. package/Samples~/Spatial Structures - 2D and 3D/README.md.meta +8 -0
  817. package/Samples~/Spatial Structures - 2D and 3D/Scripts/Samples.UnityHelpers.SpatialStructures.asmdef +17 -0
  818. package/Samples~/Spatial Structures - 2D and 3D/Scripts/Samples.UnityHelpers.SpatialStructures.asmdef.meta +8 -0
  819. package/Samples~/Spatial Structures - 2D and 3D/Scripts/SpatialStructuresDemo.cs +62 -0
  820. package/Samples~/Spatial Structures - 2D and 3D/Scripts/SpatialStructuresDemo.cs.meta +12 -0
  821. package/Samples~/Spatial Structures - 2D and 3D/Scripts.meta +9 -0
  822. package/Samples~/Spatial Structures - 2D and 3D.meta +9 -0
  823. package/Samples~/UGUI - EnhancedImage/README.md +12 -0
  824. package/Samples~/UGUI - EnhancedImage/README.md.meta +8 -0
  825. package/Samples~/UGUI - EnhancedImage/Scripts/EnhancedImageDemo.cs +36 -0
  826. package/Samples~/UGUI - EnhancedImage/Scripts/EnhancedImageDemo.cs.meta +12 -0
  827. package/Samples~/UGUI - EnhancedImage/Scripts/Samples.UnityHelpers.UGUI.EnhancedImage.asmdef +17 -0
  828. package/Samples~/UGUI - EnhancedImage/Scripts/Samples.UnityHelpers.UGUI.EnhancedImage.asmdef.meta +8 -0
  829. package/Samples~/UGUI - EnhancedImage/Scripts.meta +9 -0
  830. package/Samples~/UGUI - EnhancedImage.meta +9 -0
  831. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/README.md +12 -0
  832. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/README.md.meta +8 -0
  833. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/MultiFileSelectorSampleWindow.cs +45 -0
  834. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/MultiFileSelectorSampleWindow.cs.meta +12 -0
  835. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/Samples.UnityHelpers.UIToolkit.Editor.asmdef +19 -0
  836. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/Samples.UnityHelpers.UIToolkit.Editor.asmdef.meta +8 -0
  837. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor.meta +9 -0
  838. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts.meta +9 -0
  839. package/Samples~/UI Toolkit - MultiFile Selector (Editor).meta +9 -0
  840. package/Shaders/Materials/BackgroundMask-Material.mat +59 -59
  841. package/Shaders/Materials/BackgroundMask-Material.mat.meta +8 -8
  842. package/Shaders/Materials.meta +8 -8
  843. package/Shaders/ShaderGraph/BackgroundMask.shadergraph +1653 -1653
  844. package/Shaders/ShaderGraph/BackgroundMask.shadergraph.meta +10 -10
  845. package/Shaders/ShaderGraph/DebugDisplayValue.shadersubgraph +835 -835
  846. package/Shaders/ShaderGraph/DebugDisplayValue.shadersubgraph.meta +10 -10
  847. package/Shaders/ShaderGraph.meta +8 -8
  848. package/Shaders/Support/EnhancedImageSupport.shader +64 -0
  849. package/Shaders/Support/EnhancedImageSupport.shader.meta +9 -0
  850. package/Shaders/Support.meta +8 -0
  851. package/Shaders.meta +8 -8
  852. package/Styles/Elements/Progress/ArcedProgressBar.cs +345 -345
  853. package/Styles/Elements/Progress/ArcedProgressBar.cs.meta +2 -2
  854. package/Styles/Elements/Progress/CircularProgressBar.cs +307 -307
  855. package/Styles/Elements/Progress/CircularProgressBar.cs.meta +2 -2
  856. package/Styles/Elements/Progress/GlitchProgressBar.cs +416 -416
  857. package/Styles/Elements/Progress/GlitchProgressBar.cs.meta +2 -2
  858. package/Styles/Elements/Progress/LiquidProgressBar.cs +632 -632
  859. package/Styles/Elements/Progress/LiquidProgressBar.cs.meta +2 -2
  860. package/Styles/Elements/Progress/MarchingAntsProgressBar.cs +722 -722
  861. package/Styles/Elements/Progress/MarchingAntsProgressBar.cs.meta +2 -2
  862. package/Styles/Elements/Progress/RegularProgressBar.cs +405 -405
  863. package/Styles/Elements/Progress/RegularProgressBar.cs.meta +2 -2
  864. package/Styles/Elements/Progress/WigglyProgressBar.cs +837 -837
  865. package/Styles/Elements/Progress/WigglyProgressBar.cs.meta +2 -2
  866. package/Styles/Elements/Progress.meta +2 -2
  867. package/Styles/Elements.meta +2 -2
  868. package/Styles/USS/ArcedProgressBar.uss +18 -18
  869. package/Styles/USS/ArcedProgressBar.uss.meta +2 -2
  870. package/Styles/USS/CirclularProgressBar.uss +17 -17
  871. package/Styles/USS/CirclularProgressBar.uss.meta +2 -2
  872. package/Styles/USS/RegularProgressBar.uss +32 -32
  873. package/Styles/USS/RegularProgressBar.uss.meta +2 -2
  874. package/Styles/USS/WigglyProgressBar.uss +16 -16
  875. package/Styles/USS/WigglyProgressBar.uss.meta +2 -2
  876. package/Styles/USS.meta +2 -2
  877. package/Styles/WallstopStudios.UnityHelpers.Styles.asmdef +14 -17
  878. package/Styles/WallstopStudios.UnityHelpers.Styles.asmdef.meta +7 -7
  879. package/Styles.meta +2 -2
  880. package/THIRD_PARTY_NOTICES.md +74 -0
  881. package/THIRD_PARTY_NOTICES.md.meta +7 -0
  882. package/Tests/Editor/Attributes/AnimationEventHelpersTests.cs +155 -0
  883. package/Tests/Editor/Attributes/AnimationEventHelpersTests.cs.meta +11 -0
  884. package/Tests/Editor/Attributes.meta +8 -0
  885. package/Tests/Editor/Core/Attributes/RelationalComponentAssignerTests.cs +118 -0
  886. package/Tests/Editor/Core/Attributes/RelationalComponentAssignerTests.cs.meta +11 -0
  887. package/Tests/Editor/Core/Attributes.meta +8 -0
  888. package/Tests/Editor/Core.meta +8 -0
  889. package/Tests/Editor/Extensions/SerializedPropertyExtensionsTests.cs +194 -0
  890. package/Tests/Editor/Extensions/SerializedPropertyExtensionsTests.cs.meta +3 -0
  891. package/Tests/Editor/Extensions.meta +3 -0
  892. package/Tests/Editor/Helper/DummyScriptableObject.cs +6 -0
  893. package/Tests/Editor/Helper/DummyScriptableObject.cs.meta +3 -0
  894. package/Tests/Editor/Helper/HelpersTests.cs +101 -0
  895. package/Tests/Editor/Helper/HelpersTests.cs.meta +3 -0
  896. package/Tests/Editor/Helper/ObjectHelpersEditorTests.cs +63 -0
  897. package/Tests/Editor/Helper/ObjectHelpersEditorTests.cs.meta +11 -0
  898. package/Tests/Editor/Helper/PromptScope.cs +28 -0
  899. package/Tests/Editor/Helper/PromptScope.cs.meta +11 -0
  900. package/Tests/Editor/Helper/ReflectionHelpersEditorTests.cs +105 -0
  901. package/Tests/Editor/Helper/ReflectionHelpersEditorTests.cs.meta +11 -0
  902. package/Tests/Editor/Helper/SpriteHelpersTests.cs +334 -0
  903. package/Tests/Editor/Helper/SpriteHelpersTests.cs.meta +3 -0
  904. package/Tests/Editor/Helper/SpriteSettingsApplierAdditionalTests.cs +183 -0
  905. package/Tests/Editor/Helper/SpriteSettingsApplierAdditionalTests.cs.meta +11 -0
  906. package/Tests/Editor/Helper/SpriteSettingsApplierTests.cs +161 -0
  907. package/Tests/Editor/Helper/SpriteSettingsApplierTests.cs.meta +11 -0
  908. package/Tests/Editor/Helper.meta +3 -0
  909. package/Tests/Editor/Integrations/VContainer/VContainerIntegrationCompilationTests.cs +40 -0
  910. package/Tests/Editor/Integrations/VContainer/VContainerIntegrationCompilationTests.cs.meta +11 -0
  911. package/Tests/Editor/Integrations/VContainer/VContainerRelationalEntryPointTests.cs +77 -0
  912. package/Tests/Editor/Integrations/VContainer/VContainerRelationalEntryPointTests.cs.meta +11 -0
  913. package/Tests/Editor/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Editor.VContainer.asmdef +36 -0
  914. package/Tests/Editor/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Editor.VContainer.asmdef.meta +7 -0
  915. package/Tests/Editor/Integrations/VContainer.meta +8 -0
  916. package/Tests/Editor/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Editor.Zenject.asmdef +36 -0
  917. package/Tests/Editor/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Editor.Zenject.asmdef.meta +7 -0
  918. package/Tests/Editor/Integrations/Zenject/ZenjectIntegrationCompilationTests.cs +40 -0
  919. package/Tests/Editor/Integrations/Zenject/ZenjectIntegrationCompilationTests.cs.meta +11 -0
  920. package/Tests/Editor/Integrations/Zenject/ZenjectRelationalInitializerTests.cs +76 -0
  921. package/Tests/Editor/Integrations/Zenject/ZenjectRelationalInitializerTests.cs.meta +11 -0
  922. package/Tests/Editor/Integrations/Zenject.meta +8 -0
  923. package/Tests/Editor/Integrations.meta +8 -0
  924. package/Tests/Editor/MultiFileSelectorElementTests.cs +265 -0
  925. package/Tests/Editor/MultiFileSelectorElementTests.cs.meta +11 -0
  926. package/Tests/Editor/MultiFileSelectorPersistenceManagerTests.cs +100 -0
  927. package/Tests/Editor/MultiFileSelectorPersistenceManagerTests.cs.meta +11 -0
  928. package/Tests/Editor/Sprites/AnimationCopierWindowTests.cs +199 -0
  929. package/Tests/Editor/Sprites/AnimationCopierWindowTests.cs.meta +11 -0
  930. package/Tests/Editor/Sprites/ScriptableSpriteAtlasEditorTests.cs +108 -0
  931. package/Tests/Editor/Sprites/ScriptableSpriteAtlasEditorTests.cs.meta +11 -0
  932. package/Tests/Editor/Sprites/SpriteCropperAdditionalTests.cs +323 -0
  933. package/Tests/Editor/Sprites/SpriteCropperAdditionalTests.cs.meta +11 -0
  934. package/Tests/Editor/Sprites/SpriteCropperTests.cs +162 -0
  935. package/Tests/Editor/Sprites/SpriteCropperTests.cs.meta +11 -0
  936. package/Tests/Editor/Sprites/SpritePivotAdjusterAdditionalTests.cs +227 -0
  937. package/Tests/Editor/Sprites/SpritePivotAdjusterAdditionalTests.cs.meta +11 -0
  938. package/Tests/Editor/Sprites/SpritePivotAdjusterTests.cs +113 -0
  939. package/Tests/Editor/Sprites/SpritePivotAdjusterTests.cs.meta +11 -0
  940. package/Tests/Editor/Sprites/TexturePlatformNameHelperTests.cs +28 -0
  941. package/Tests/Editor/Sprites/TexturePlatformNameHelperTests.cs.meta +11 -0
  942. package/Tests/Editor/Sprites/TextureResizerWizardTests.cs +248 -0
  943. package/Tests/Editor/Sprites/TextureResizerWizardTests.cs.meta +11 -0
  944. package/Tests/Editor/Sprites/TextureSettingsApplierAPITests.cs +180 -0
  945. package/Tests/Editor/Sprites/TextureSettingsApplierAPITests.cs.meta +11 -0
  946. package/Tests/Editor/Sprites/TextureSettingsApplierWizardAdditionalTests.cs +295 -0
  947. package/Tests/Editor/Sprites/TextureSettingsApplierWizardAdditionalTests.cs.meta +11 -0
  948. package/Tests/Editor/Sprites/TextureSettingsApplierWizardTests.cs +134 -0
  949. package/Tests/Editor/Sprites/TextureSettingsApplierWizardTests.cs.meta +11 -0
  950. package/Tests/Editor/Sprites.meta +8 -0
  951. package/Tests/Editor/TestComponents/PrewarmTesterComponent.cs +10 -0
  952. package/Tests/Editor/TestComponents/PrewarmTesterComponent.cs.meta +11 -0
  953. package/Tests/Editor/TestComponents.meta +8 -0
  954. package/Tests/Editor/Tools/ImageBlurToolTests.cs +135 -0
  955. package/Tests/Editor/Tools/ImageBlurToolTests.cs.meta +11 -0
  956. package/Tests/Editor/Tools.meta +8 -0
  957. package/Tests/Editor/Utils/CommonTestBase.cs +208 -0
  958. package/Tests/Editor/Utils/CommonTestBase.cs.meta +11 -0
  959. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorEditorTests.cs +306 -0
  960. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorEditorTests.cs.meta +9 -0
  961. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorTests.cs +183 -0
  962. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorTests.cs.meta +11 -0
  963. package/Tests/Editor/Utils/ScriptableObjectSingletonTests.cs +466 -0
  964. package/Tests/Editor/Utils/ScriptableObjectSingletonTests.cs.meta +11 -0
  965. package/Tests/Editor/Utils.meta +3 -0
  966. package/Tests/Editor/WallstopStudios.UnityHelpers.Tests.Editor.asmdef +19 -0
  967. package/Tests/Editor/WallstopStudios.UnityHelpers.Tests.Editor.asmdef.meta +7 -0
  968. package/Tests/Editor/Windows/FitTextureSizeWindowTests.cs +781 -0
  969. package/Tests/Editor/Windows/FitTextureSizeWindowTests.cs.meta +11 -0
  970. package/Tests/Editor/Windows/PrefabCheckerFolderAdditionTests.cs +96 -0
  971. package/Tests/Editor/Windows/PrefabCheckerFolderAdditionTests.cs.meta +11 -0
  972. package/Tests/Editor/Windows/PrefabCheckerTests.cs +81 -0
  973. package/Tests/Editor/Windows/PrefabCheckerTests.cs.meta +11 -0
  974. package/Tests/Editor/Windows.meta +8 -0
  975. package/Tests/Editor.meta +8 -0
  976. package/Tests/Runtime/AssemblyInfo.cs +4 -0
  977. package/Tests/Runtime/AssemblyInfo.cs.meta +3 -0
  978. package/Tests/Runtime/Attributes/ChildComponentTests.cs +766 -81
  979. package/Tests/Runtime/Attributes/ChildComponentTests.cs.meta +2 -2
  980. package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs +28 -28
  981. package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs.meta +2 -2
  982. package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs +28 -28
  983. package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs.meta +2 -2
  984. package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentTesterComplex.cs +34 -34
  985. package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentTesterComplex.cs.meta +2 -2
  986. package/Tests/Runtime/Attributes/Components/RelationalComponentsTesterSimple.cs +37 -0
  987. package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentsTesterSimple.cs.meta +2 -2
  988. package/Tests/Runtime/Attributes/Components.meta +2 -2
  989. package/Tests/Runtime/Attributes/MiscRuntimeAttributeTests.cs +75 -0
  990. package/Tests/Runtime/Attributes/MiscRuntimeAttributeTests.cs.meta +11 -0
  991. package/Tests/Runtime/Attributes/NotNullAttributeTests.cs +26 -0
  992. package/Tests/Runtime/Attributes/NotNullAttributeTests.cs.meta +3 -0
  993. package/Tests/Runtime/Attributes/ParentComponentTests.cs +565 -68
  994. package/Tests/Runtime/Attributes/ParentComponentTests.cs.meta +2 -2
  995. package/Tests/Runtime/Attributes/RelationalComponentAdvancedTests.cs +614 -0
  996. package/Tests/Runtime/Attributes/RelationalComponentAdvancedTests.cs.meta +11 -0
  997. package/Tests/Runtime/Attributes/RelationalComponentBackwardCompatibilityTests.cs +478 -0
  998. package/Tests/Runtime/Attributes/RelationalComponentBackwardCompatibilityTests.cs.meta +11 -0
  999. package/Tests/Runtime/Attributes/RelationalComponentExtensionsTests.cs +56 -0
  1000. package/Tests/Runtime/Attributes/RelationalComponentExtensionsTests.cs.meta +11 -0
  1001. package/Tests/Runtime/Attributes/RelationalComponentHashSetTests.cs +226 -0
  1002. package/Tests/Runtime/Attributes/RelationalComponentHashSetTests.cs.meta +11 -0
  1003. package/Tests/Runtime/Attributes/RelationalComponentInitializerTests.cs +109 -0
  1004. package/Tests/Runtime/Attributes/RelationalComponentInitializerTests.cs.meta +11 -0
  1005. package/Tests/Runtime/Attributes/RelationalComponentTagAndNameFilterEdgeTests.cs +234 -0
  1006. package/Tests/Runtime/Attributes/RelationalComponentTagAndNameFilterEdgeTests.cs.meta +11 -0
  1007. package/Tests/Runtime/Attributes/SiblingComponentTests.cs +721 -0
  1008. package/Tests/Runtime/Attributes/SiblingComponentTests.cs.meta +11 -0
  1009. package/Tests/Runtime/Attributes/ValidateAssignmentAttributeTests.cs +96 -0
  1010. package/Tests/Runtime/Attributes/ValidateAssignmentAttributeTests.cs.meta +11 -0
  1011. package/Tests/Runtime/Attributes.meta +2 -2
  1012. package/Tests/Runtime/Core/Random/RandomComparerTests.cs +166 -0
  1013. package/Tests/Runtime/Core/Random/RandomComparerTests.cs.meta +11 -0
  1014. package/Tests/Runtime/Core/Random.meta +8 -0
  1015. package/Tests/Runtime/Core/Threading/SingleThreadedThreadPoolTests.cs +56 -56
  1016. package/Tests/Runtime/Core/Threading/SingleThreadedThreadPoolTests.cs.meta +2 -2
  1017. package/Tests/Runtime/Core/Threading.meta +2 -2
  1018. package/Tests/Runtime/Core.meta +2 -2
  1019. package/Tests/Runtime/DataStructures/BalancedKDTree2DTests.cs +562 -0
  1020. package/Tests/Runtime/DataStructures/{BalancedKDTreeTests.cs.meta → BalancedKDTree2DTests.cs.meta} +11 -11
  1021. package/Tests/Runtime/DataStructures/BalancedKDTree3DTests.cs +10 -0
  1022. package/Tests/Runtime/DataStructures/BalancedKDTree3DTests.cs.meta +11 -0
  1023. package/Tests/Runtime/DataStructures/BitSetTests.cs +1400 -0
  1024. package/Tests/Runtime/DataStructures/BitSetTests.cs.meta +3 -0
  1025. package/Tests/Runtime/DataStructures/BoundingBox3DTests.cs +1215 -0
  1026. package/Tests/Runtime/DataStructures/BoundingBox3DTests.cs.meta +11 -0
  1027. package/Tests/Runtime/DataStructures/CircleTests.cs +965 -0
  1028. package/Tests/Runtime/DataStructures/CircleTests.cs.meta +11 -0
  1029. package/Tests/Runtime/DataStructures/CyclicBufferTests.cs +2083 -324
  1030. package/Tests/Runtime/DataStructures/CyclicBufferTests.cs.meta +2 -2
  1031. package/Tests/Runtime/DataStructures/DequeTests.cs +790 -0
  1032. package/Tests/Runtime/DataStructures/DequeTests.cs.meta +3 -0
  1033. package/Tests/Runtime/DataStructures/DisjointSetTests.cs +1114 -0
  1034. package/Tests/Runtime/DataStructures/DisjointSetTests.cs.meta +3 -0
  1035. package/Tests/Runtime/DataStructures/FastOneOfTests.cs +966 -0
  1036. package/Tests/Runtime/DataStructures/FastOneOfTests.cs.meta +11 -0
  1037. package/Tests/Runtime/DataStructures/FastVector2IntTests.cs +286 -0
  1038. package/Tests/Runtime/DataStructures/FastVector2IntTests.cs.meta +11 -0
  1039. package/Tests/Runtime/DataStructures/FastVector3IntTests.cs +414 -0
  1040. package/Tests/Runtime/DataStructures/FastVector3IntTests.cs.meta +11 -0
  1041. package/Tests/Runtime/DataStructures/HeapTests.cs +1953 -0
  1042. package/Tests/Runtime/DataStructures/HeapTests.cs.meta +11 -0
  1043. package/Tests/Runtime/DataStructures/ImmutableBitSetTests.cs +833 -0
  1044. package/Tests/Runtime/DataStructures/ImmutableBitSetTests.cs.meta +3 -0
  1045. package/Tests/Runtime/DataStructures/KDTree3DTestsBase.cs +297 -0
  1046. package/Tests/Runtime/DataStructures/KDTree3DTestsBase.cs.meta +11 -0
  1047. package/Tests/Runtime/DataStructures/OctTree3DTests.cs +351 -0
  1048. package/Tests/Runtime/DataStructures/OctTree3DTests.cs.meta +11 -0
  1049. package/Tests/Runtime/DataStructures/PriorityQueueTests.cs +71 -0
  1050. package/Tests/Runtime/DataStructures/PriorityQueueTests.cs.meta +3 -0
  1051. package/Tests/Runtime/DataStructures/ProtobufSerializationTests.cs +475 -0
  1052. package/Tests/Runtime/DataStructures/ProtobufSerializationTests.cs.meta +11 -0
  1053. package/Tests/Runtime/DataStructures/QuadTree2DTests.cs +660 -0
  1054. package/Tests/Runtime/DataStructures/QuadTree2DTests.cs.meta +11 -0
  1055. package/Tests/Runtime/DataStructures/RTree2DTests.cs +823 -0
  1056. package/Tests/Runtime/DataStructures/RTree2DTests.cs.meta +3 -0
  1057. package/Tests/Runtime/DataStructures/RTree3DTests.cs +270 -0
  1058. package/Tests/Runtime/DataStructures/RTree3DTests.cs.meta +11 -0
  1059. package/Tests/Runtime/DataStructures/SparseSetTests.cs +1146 -0
  1060. package/Tests/Runtime/DataStructures/SparseSetTests.cs.meta +3 -0
  1061. package/Tests/Runtime/DataStructures/SpatialHashTests.cs +992 -0
  1062. package/Tests/Runtime/DataStructures/SpatialHashTests.cs.meta +11 -0
  1063. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsConsistencyTests.cs +351 -0
  1064. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsConsistencyTests.cs.meta +11 -0
  1065. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsEdgeTests.cs +127 -0
  1066. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsEdgeTests.cs.meta +11 -0
  1067. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsFuzzTests.cs +218 -0
  1068. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsFuzzTests.cs.meta +11 -0
  1069. package/Tests/Runtime/DataStructures/SpatialTree2DTests.cs +396 -0
  1070. package/Tests/Runtime/DataStructures/SpatialTree2DTests.cs.meta +11 -0
  1071. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsConsistencyTests.cs +281 -0
  1072. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsConsistencyTests.cs.meta +11 -0
  1073. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsEdgeTests.cs +127 -0
  1074. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsEdgeTests.cs.meta +11 -0
  1075. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsFuzzTests.cs +170 -0
  1076. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsFuzzTests.cs.meta +11 -0
  1077. package/Tests/Runtime/DataStructures/SpatialTree3DTests.cs +474 -0
  1078. package/Tests/Runtime/DataStructures/SpatialTree3DTests.cs.meta +11 -0
  1079. package/Tests/Runtime/DataStructures/SphereTests.cs +806 -0
  1080. package/Tests/Runtime/DataStructures/SphereTests.cs.meta +3 -0
  1081. package/Tests/Runtime/DataStructures/StringWrapperTests.cs +333 -0
  1082. package/Tests/Runtime/DataStructures/StringWrapperTests.cs.meta +11 -0
  1083. package/Tests/Runtime/DataStructures/TimedCacheTests.cs +669 -0
  1084. package/Tests/Runtime/DataStructures/TimedCacheTests.cs.meta +11 -0
  1085. package/Tests/Runtime/DataStructures/TrieTests.cs +3385 -0
  1086. package/Tests/Runtime/DataStructures/TrieTests.cs.meta +11 -0
  1087. package/Tests/Runtime/DataStructures/UnbalancedKDTree2DTests.cs +565 -0
  1088. package/Tests/Runtime/DataStructures/{UnbalancedKDTreeTests.cs.meta → UnbalancedKDTree2DTests.cs.meta} +11 -11
  1089. package/Tests/Runtime/DataStructures/UnbalancedKDTree3DTests.cs +10 -0
  1090. package/Tests/Runtime/DataStructures/UnbalancedKDTree3DTests.cs.meta +11 -0
  1091. package/Tests/Runtime/DataStructures.meta +8 -8
  1092. package/Tests/Runtime/Extensions/AnimatorExtensionsTests.cs +28 -0
  1093. package/Tests/Runtime/Extensions/AnimatorExtensionsTests.cs.meta +11 -0
  1094. package/Tests/Runtime/Extensions/AsyncOperationExtensionsTests.cs +667 -0
  1095. package/Tests/Runtime/Extensions/AsyncOperationExtensionsTests.cs.meta +11 -0
  1096. package/Tests/Runtime/Extensions/CircleExtensionsTests.cs +230 -0
  1097. package/Tests/Runtime/Extensions/CircleExtensionsTests.cs.meta +11 -0
  1098. package/Tests/Runtime/Extensions/ColorExtensionsTests.cs +55 -0
  1099. package/Tests/Runtime/Extensions/ColorExtensionsTests.cs.meta +11 -0
  1100. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs +724 -438
  1101. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs.meta +2 -2
  1102. package/Tests/Runtime/Extensions/DirectionExtensionsComprehensiveTests.cs +403 -0
  1103. package/Tests/Runtime/Extensions/DirectionExtensionsComprehensiveTests.cs.meta +11 -0
  1104. package/Tests/Runtime/Extensions/DirectionExtensionsTests.cs +69 -0
  1105. package/Tests/Runtime/Extensions/DirectionExtensionsTests.cs.meta +11 -0
  1106. package/Tests/Runtime/Extensions/EnumExtensionTests.cs +809 -153
  1107. package/Tests/Runtime/Extensions/EnumExtensionTests.cs.meta +2 -2
  1108. package/Tests/Runtime/Extensions/IEnumerableExtensionsTests.cs +191 -0
  1109. package/Tests/Runtime/Extensions/IEnumerableExtensionsTests.cs.meta +11 -0
  1110. package/Tests/Runtime/Extensions/IListExtensionTests.cs +955 -169
  1111. package/Tests/Runtime/Extensions/IListExtensionTests.cs.meta +2 -2
  1112. package/Tests/Runtime/Extensions/IReadonlyListExtensionTests.cs +266 -58
  1113. package/Tests/Runtime/Extensions/IReadonlyListExtensionTests.cs.meta +2 -2
  1114. package/Tests/Runtime/Extensions/LoggingExtensionTests.cs +721 -718
  1115. package/Tests/Runtime/Extensions/LoggingExtensionTests.cs.meta +2 -2
  1116. package/Tests/Runtime/Extensions/ProtoEqualityExtensionsTests.cs +565 -0
  1117. package/Tests/Runtime/Extensions/ProtoEqualityExtensionsTests.cs.meta +3 -0
  1118. package/Tests/Runtime/Extensions/ProtoEqualityPolymorphismTests.cs +100 -0
  1119. package/Tests/Runtime/Extensions/ProtoEqualityPolymorphismTests.cs.meta +11 -0
  1120. package/Tests/Runtime/Extensions/RandomExtensionTests.cs +719 -27
  1121. package/Tests/Runtime/Extensions/RandomExtensionTests.cs.meta +2 -2
  1122. package/Tests/Runtime/Extensions/StringExtensionTests.cs +2592 -31
  1123. package/Tests/Runtime/Extensions/StringExtensionTests.cs.meta +2 -2
  1124. package/Tests/Runtime/Extensions/UnityExtensionsBasicTests.cs +166 -0
  1125. package/Tests/Runtime/Extensions/UnityExtensionsBasicTests.cs.meta +11 -0
  1126. package/Tests/Runtime/Extensions/UnityExtensionsComprehensiveTests.cs +1446 -0
  1127. package/Tests/Runtime/Extensions/UnityExtensionsComprehensiveTests.cs.meta +11 -0
  1128. package/Tests/Runtime/Extensions/UnityExtensionsMathTests.cs +1779 -0
  1129. package/Tests/Runtime/Extensions/UnityExtensionsMathTests.cs.meta +11 -0
  1130. package/Tests/Runtime/Extensions/UnityExtensionsVector2HullTests.cs +292 -0
  1131. package/Tests/Runtime/Extensions/UnityExtensionsVector2HullTests.cs.meta +11 -0
  1132. package/Tests/Runtime/Extensions/UnityLogTagFormatterEdgeTests.cs +260 -0
  1133. package/Tests/Runtime/Extensions/UnityLogTagFormatterEdgeTests.cs.meta +11 -0
  1134. package/Tests/Runtime/Extensions.meta +2 -2
  1135. package/Tests/Runtime/Helper/ArrayConverterTests.cs +19 -19
  1136. package/Tests/Runtime/Helper/ArrayConverterTests.cs.meta +2 -2
  1137. package/Tests/Runtime/Helper/AssignUtilitiesTests.cs +38 -0
  1138. package/Tests/Runtime/Helper/AssignUtilitiesTests.cs.meta +11 -0
  1139. package/Tests/Runtime/Helper/DirectoryHelperTests.cs +347 -0
  1140. package/Tests/Runtime/Helper/DirectoryHelperTests.cs.meta +11 -0
  1141. package/Tests/Runtime/Helper/EnumerablesTests.cs +45 -0
  1142. package/Tests/Runtime/Helper/EnumerablesTests.cs.meta +11 -0
  1143. package/Tests/Runtime/Helper/FileHelperTests.cs +481 -0
  1144. package/Tests/Runtime/Helper/FileHelperTests.cs.meta +11 -0
  1145. package/Tests/Runtime/Helper/FormattingHelpersTests.cs +353 -0
  1146. package/Tests/Runtime/Helper/FormattingHelpersTests.cs.meta +11 -0
  1147. package/Tests/Runtime/Helper/FuncBasedComparerTests.cs +27 -0
  1148. package/Tests/Runtime/Helper/FuncBasedComparerTests.cs.meta +11 -0
  1149. package/Tests/Runtime/Helper/GeometryTests.cs +517 -0
  1150. package/Tests/Runtime/Helper/GeometryTests.cs.meta +3 -0
  1151. package/Tests/Runtime/Helper/HelpersTests.cs +749 -0
  1152. package/Tests/Runtime/Helper/HelpersTests.cs.meta +11 -0
  1153. package/Tests/Runtime/Helper/IterationHelpersTests.cs +173 -0
  1154. package/Tests/Runtime/Helper/IterationHelpersTests.cs.meta +11 -0
  1155. package/Tests/Runtime/Helper/LineHelperTests.cs +662 -0
  1156. package/Tests/Runtime/Helper/LineHelperTests.cs.meta +11 -0
  1157. package/Tests/Runtime/Helper/ObjectHelperTests.cs +444 -432
  1158. package/Tests/Runtime/Helper/ObjectHelperTests.cs.meta +2 -2
  1159. package/Tests/Runtime/Helper/ObjectsTests.cs +363 -0
  1160. package/Tests/Runtime/Helper/ObjectsTests.cs.meta +3 -0
  1161. package/Tests/Runtime/Helper/PathHelperTests.cs +183 -0
  1162. package/Tests/Runtime/Helper/PathHelperTests.cs.meta +11 -0
  1163. package/Tests/Runtime/Helper/ReflectionHelperTests.cs +2199 -1493
  1164. package/Tests/Runtime/Helper/ReflectionHelperTests.cs.meta +2 -2
  1165. package/Tests/Runtime/Helper/ReflectionHelpersMemberLookupTests.cs +192 -0
  1166. package/Tests/Runtime/Helper/ReflectionHelpersMemberLookupTests.cs.meta +11 -0
  1167. package/Tests/Runtime/Helper/ReflectionHelpersTypeScanningTests.cs +58 -0
  1168. package/Tests/Runtime/Helper/ReflectionHelpersTypeScanningTests.cs.meta +11 -0
  1169. package/Tests/Runtime/Helper/SceneHelperTests.cs +77 -94
  1170. package/Tests/Runtime/Helper/SceneHelperTests.cs.meta +2 -2
  1171. package/Tests/Runtime/Helper/UnityMainThreadDispatcherTests.cs +45 -0
  1172. package/Tests/Runtime/Helper/UnityMainThreadDispatcherTests.cs.meta +11 -0
  1173. package/Tests/Runtime/Helper/WallMathTests.cs +1884 -233
  1174. package/Tests/Runtime/Helper/WallMathTests.cs.meta +2 -2
  1175. package/Tests/Runtime/Helper.meta +2 -2
  1176. package/Tests/Runtime/Integrations/VContainer/RelationalComponentsVContainerTests.cs +560 -0
  1177. package/Tests/Runtime/Integrations/VContainer/RelationalComponentsVContainerTests.cs.meta +11 -0
  1178. package/Tests/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Runtime.VContainer.asmdef +38 -0
  1179. package/Tests/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Runtime.VContainer.asmdef.meta +7 -0
  1180. package/Tests/Runtime/Integrations/VContainer.meta +8 -0
  1181. package/Tests/Runtime/Integrations/Zenject/RelationalComponentsZenjectTests.cs +591 -0
  1182. package/Tests/Runtime/Integrations/Zenject/RelationalComponentsZenjectTests.cs.meta +11 -0
  1183. package/Tests/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Runtime.Zenject.asmdef +38 -0
  1184. package/Tests/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Runtime.Zenject.asmdef.meta +7 -0
  1185. package/Tests/Runtime/Integrations/Zenject.meta +8 -0
  1186. package/Tests/Runtime/Integrations.meta +8 -0
  1187. package/Tests/Runtime/Math/Line2DTests.cs +594 -0
  1188. package/Tests/Runtime/Math/Line2DTests.cs.meta +11 -0
  1189. package/Tests/Runtime/Math/Line3DTests.cs +655 -0
  1190. package/Tests/Runtime/Math/Line3DTests.cs.meta +11 -0
  1191. package/Tests/Runtime/Math/LineTests.cs +480 -0
  1192. package/Tests/Runtime/Math/LineTests.cs.meta +11 -0
  1193. package/Tests/Runtime/Math/ParabolaTests.cs +477 -0
  1194. package/Tests/Runtime/Math/ParabolaTests.cs.meta +11 -0
  1195. package/Tests/Runtime/Math/PointPolygonCheckTests.cs +939 -0
  1196. package/Tests/Runtime/Math/PointPolygonCheckTests.cs.meta +11 -0
  1197. package/Tests/Runtime/Math/RangeTests.cs +197 -0
  1198. package/Tests/Runtime/Math/RangeTests.cs.meta +11 -0
  1199. package/Tests/Runtime/Math.meta +8 -0
  1200. package/Tests/Runtime/Performance/BenchmarkReadmeUpdater.cs +81 -0
  1201. package/Tests/Runtime/Performance/BenchmarkReadmeUpdater.cs.meta +11 -0
  1202. package/Tests/Runtime/Performance/JsonSerializationPerformanceTests.cs +421 -0
  1203. package/Tests/Runtime/Performance/JsonSerializationPerformanceTests.cs.meta +3 -0
  1204. package/Tests/Runtime/Performance/ListExtensionPerformanceTests.cs +76 -76
  1205. package/Tests/Runtime/Performance/ListExtensionPerformanceTests.cs.meta +2 -2
  1206. package/Tests/Runtime/Performance/ProtoEqualsPerformanceTests.cs +161 -0
  1207. package/Tests/Runtime/Performance/ProtoEqualsPerformanceTests.cs.meta +11 -0
  1208. package/Tests/Runtime/Performance/ProtoSerializationPerformanceTests.cs +207 -0
  1209. package/Tests/Runtime/Performance/ProtoSerializationPerformanceTests.cs.meta +3 -0
  1210. package/Tests/Runtime/Performance/RandomPerformanceTests.cs +195 -181
  1211. package/Tests/Runtime/Performance/RandomPerformanceTests.cs.meta +11 -11
  1212. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs +60 -61
  1213. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs.meta +2 -2
  1214. package/Tests/Runtime/Performance/SpatialTree2DPerformanceTests.cs +692 -0
  1215. package/Tests/Runtime/Performance/SpatialTree2DPerformanceTests.cs.meta +11 -0
  1216. package/Tests/Runtime/Performance/SpatialTree3DPerformanceTests.cs +650 -0
  1217. package/Tests/Runtime/Performance/SpatialTree3DPerformanceTests.cs.meta +11 -0
  1218. package/Tests/Runtime/Performance.meta +8 -8
  1219. package/Tests/Runtime/Random/DotNetRandomTests.cs +9 -9
  1220. package/Tests/Runtime/Random/DotNetRandomTests.cs.meta +2 -2
  1221. package/Tests/Runtime/Random/IllusionFlowTests.cs +12 -12
  1222. package/Tests/Runtime/Random/IllusionFlowTests.cs.meta +2 -2
  1223. package/Tests/Runtime/Random/LinearCongruentialGeneratorTests.cs +12 -12
  1224. package/Tests/Runtime/Random/LinearCongruentialGeneratorTests.cs.meta +2 -2
  1225. package/Tests/Runtime/Random/PcgRandomTests.cs +9 -9
  1226. package/Tests/Runtime/Random/PcgRandomTests.cs.meta +11 -11
  1227. package/Tests/Runtime/Random/RandomProtoSerializationTests.cs +494 -0
  1228. package/Tests/Runtime/Random/RandomProtoSerializationTests.cs.meta +3 -0
  1229. package/Tests/Runtime/Random/RandomStateSerializationTests.cs +304 -0
  1230. package/Tests/Runtime/Random/RandomStateSerializationTests.cs.meta +4 -0
  1231. package/Tests/Runtime/Random/RandomTestBase.cs +836 -787
  1232. package/Tests/Runtime/Random/RandomTestBase.cs.meta +11 -11
  1233. package/Tests/Runtime/Random/RomuDuoRandomTests.cs +9 -9
  1234. package/Tests/Runtime/Random/RomuDuoRandomTests.cs.meta +2 -2
  1235. package/Tests/Runtime/Random/SplitMix64RandomTests.cs +9 -9
  1236. package/Tests/Runtime/Random/SplitMix64RandomTests.cs.meta +2 -2
  1237. package/Tests/Runtime/Random/SquirrelRandomTests.cs +14 -14
  1238. package/Tests/Runtime/Random/SquirrelRandomTests.cs.meta +11 -11
  1239. package/Tests/Runtime/Random/SystemRandomTests.cs +10 -10
  1240. package/Tests/Runtime/Random/SystemRandomTests.cs.meta +11 -11
  1241. package/Tests/Runtime/Random/UnityRandomTests.cs +9 -9
  1242. package/Tests/Runtime/Random/UnityRandomTests.cs.meta +11 -11
  1243. package/Tests/Runtime/Random/WyRandomTests.cs +9 -9
  1244. package/Tests/Runtime/Random/WyRandomTests.cs.meta +2 -2
  1245. package/Tests/Runtime/Random/XorShiftRandomTests.cs +9 -9
  1246. package/Tests/Runtime/Random/XorShiftRandomTests.cs.meta +11 -11
  1247. package/Tests/Runtime/Random/XoroShiroRandomTests.cs +9 -9
  1248. package/Tests/Runtime/Random/XoroShiroRandomTests.cs.meta +2 -2
  1249. package/Tests/Runtime/Random.meta +8 -8
  1250. package/Tests/Runtime/RuntimeTestTimeouts.cs +3 -0
  1251. package/Tests/Runtime/RuntimeTestTimeouts.cs.meta +11 -0
  1252. package/Tests/Runtime/Scenes/Test1.unity +723 -723
  1253. package/Tests/Runtime/Scenes/Test1.unity.meta +7 -7
  1254. package/Tests/Runtime/Scenes/Test2.unity +723 -723
  1255. package/Tests/Runtime/Scenes/Test2.unity.meta +7 -7
  1256. package/Tests/Runtime/Scenes.meta +2 -2
  1257. package/Tests/Runtime/Serialization/AdaptersJsonTests.cs +67 -0
  1258. package/Tests/Runtime/Serialization/AdaptersJsonTests.cs.meta +11 -0
  1259. package/Tests/Runtime/Serialization/BitSetJsonTests.cs +50 -0
  1260. package/Tests/Runtime/Serialization/BitSetJsonTests.cs.meta +11 -0
  1261. package/Tests/Runtime/Serialization/CyclicBufferJsonTests.cs +67 -0
  1262. package/Tests/Runtime/Serialization/CyclicBufferJsonTests.cs.meta +11 -0
  1263. package/Tests/Runtime/Serialization/DequeJsonTests.cs +70 -0
  1264. package/Tests/Runtime/Serialization/DequeJsonTests.cs.meta +11 -0
  1265. package/Tests/Runtime/Serialization/ImmutableBitSetJsonTests.cs +25 -0
  1266. package/Tests/Runtime/Serialization/ImmutableBitSetJsonTests.cs.meta +11 -0
  1267. package/Tests/Runtime/Serialization/JsonConverterTests.cs +1157 -0
  1268. package/Tests/Runtime/Serialization/JsonConverterTests.cs.meta +11 -0
  1269. package/Tests/Runtime/Serialization/JsonRoundtripComprehensiveTests.cs +239 -0
  1270. package/Tests/Runtime/Serialization/JsonRoundtripComprehensiveTests.cs.meta +11 -0
  1271. package/Tests/Runtime/Serialization/JsonSerializationCorrectnessTests.cs +458 -0
  1272. package/Tests/Runtime/Serialization/JsonSerializationCorrectnessTests.cs.meta +3 -0
  1273. package/Tests/Runtime/Serialization/JsonSerializationTest.cs +156 -156
  1274. package/Tests/Runtime/Serialization/JsonSerializationTest.cs.meta +2 -2
  1275. package/Tests/Runtime/Serialization/MathJsonTests.cs +79 -0
  1276. package/Tests/Runtime/Serialization/MathJsonTests.cs.meta +11 -0
  1277. package/Tests/Runtime/Serialization/ProtoInterfaceResolutionEdgeTests.cs +76 -0
  1278. package/Tests/Runtime/Serialization/ProtoInterfaceResolutionEdgeTests.cs.meta +11 -0
  1279. package/Tests/Runtime/Serialization/ProtoRootRegistrationTests.cs +80 -0
  1280. package/Tests/Runtime/Serialization/ProtoRootRegistrationTests.cs.meta +11 -0
  1281. package/Tests/Runtime/Serialization/ProtoRoundtripComprehensiveTests.cs +257 -0
  1282. package/Tests/Runtime/Serialization/ProtoRoundtripComprehensiveTests.cs.meta +11 -0
  1283. package/Tests/Runtime/Serialization/ProtoSerializationCorrectnessTests.cs +471 -0
  1284. package/Tests/Runtime/Serialization/ProtoSerializationCorrectnessTests.cs.meta +3 -0
  1285. package/Tests/Runtime/Serialization/ProtoSerializationTests.cs +169 -0
  1286. package/Tests/Runtime/Serialization/ProtoSerializationTests.cs.meta +11 -0
  1287. package/Tests/Runtime/Serialization/ProtoSerializeBehaviorTests.cs +62 -0
  1288. package/Tests/Runtime/Serialization/ProtoSerializeBehaviorTests.cs.meta +11 -0
  1289. package/Tests/Runtime/Serialization/SerializerAdditionalTests.cs +895 -0
  1290. package/Tests/Runtime/Serialization/SerializerAdditionalTests.cs.meta +3 -0
  1291. package/Tests/Runtime/Serialization/TypeConverterTests.cs +34 -0
  1292. package/Tests/Runtime/Serialization/TypeConverterTests.cs.meta +11 -0
  1293. package/Tests/Runtime/Serialization.meta +2 -2
  1294. package/Tests/Runtime/Tags/AttributeComponentTests.cs +174 -0
  1295. package/Tests/Runtime/Tags/AttributeComponentTests.cs.meta +3 -0
  1296. package/Tests/Runtime/Tags/AttributeDataTests.cs +312 -0
  1297. package/Tests/Runtime/Tags/AttributeDataTests.cs.meta +11 -0
  1298. package/Tests/Runtime/Tags/AttributeUtilitiesTests.cs +405 -0
  1299. package/Tests/Runtime/Tags/AttributeUtilitiesTests.cs.meta +3 -0
  1300. package/Tests/Runtime/Tags/CosmeticAndCollisionTests.cs +147 -0
  1301. package/Tests/Runtime/Tags/CosmeticAndCollisionTests.cs.meta +11 -0
  1302. package/Tests/Runtime/Tags/CosmeticEffectDataTests.cs +60 -0
  1303. package/Tests/Runtime/Tags/CosmeticEffectDataTests.cs.meta +3 -0
  1304. package/Tests/Runtime/Tags/EffectHandleTests.cs +61 -0
  1305. package/Tests/Runtime/Tags/EffectHandleTests.cs.meta +3 -0
  1306. package/Tests/Runtime/Tags/EffectHandlerTests.cs +270 -0
  1307. package/Tests/Runtime/Tags/EffectHandlerTests.cs.meta +3 -0
  1308. package/Tests/Runtime/Tags/Helpers/RecordingCosmeticComponent.cs +39 -0
  1309. package/Tests/Runtime/Tags/Helpers/RecordingCosmeticComponent.cs.meta +3 -0
  1310. package/Tests/Runtime/Tags/Helpers/TagTestBase.cs +49 -0
  1311. package/Tests/Runtime/Tags/Helpers/TagTestBase.cs.meta +3 -0
  1312. package/Tests/Runtime/Tags/Helpers/TestAttributesComponent.cs +28 -0
  1313. package/Tests/Runtime/Tags/Helpers/TestAttributesComponent.cs.meta +3 -0
  1314. package/Tests/Runtime/Tags/Helpers.meta +3 -0
  1315. package/Tests/Runtime/Tags/TagHandlerTests.cs +108 -0
  1316. package/Tests/Runtime/Tags/TagHandlerTests.cs.meta +3 -0
  1317. package/Tests/Runtime/Tags.meta +8 -0
  1318. package/Tests/Runtime/TestUtils/CommonTestBase.cs +213 -0
  1319. package/Tests/Runtime/TestUtils/CommonTestBase.cs.meta +11 -0
  1320. package/Tests/Runtime/TestUtils/GCAssert.cs +55 -0
  1321. package/Tests/Runtime/TestUtils/GCAssert.cs.meta +11 -0
  1322. package/Tests/Runtime/TestUtils/SpatialAssert.cs +33 -0
  1323. package/Tests/Runtime/TestUtils/SpatialAssert.cs.meta +11 -0
  1324. package/Tests/Runtime/TestUtils/SpatialDiagnostics.cs +195 -0
  1325. package/Tests/Runtime/TestUtils/SpatialDiagnostics.cs.meta +11 -0
  1326. package/Tests/Runtime/TestUtils.meta +8 -0
  1327. package/Tests/Runtime/Utils/AnimationEventEqualityComparerTests.cs +144 -0
  1328. package/Tests/Runtime/Utils/AnimationEventEqualityComparerTests.cs.meta +11 -0
  1329. package/Tests/Runtime/Utils/Ascii85Tests.cs +56 -0
  1330. package/Tests/Runtime/Utils/Ascii85Tests.cs.meta +11 -0
  1331. package/Tests/Runtime/Utils/BuffersTests.cs +1148 -741
  1332. package/Tests/Runtime/Utils/BuffersTests.cs.meta +2 -2
  1333. package/Tests/Runtime/Utils/BuffersWaitInstructionTests.cs +31 -0
  1334. package/Tests/Runtime/Utils/BuffersWaitInstructionTests.cs.meta +11 -0
  1335. package/Tests/Runtime/Utils/CenterPointOffsetTests.cs +67 -0
  1336. package/Tests/Runtime/Utils/CenterPointOffsetTests.cs.meta +11 -0
  1337. package/Tests/Runtime/Utils/ChildSpawnerTests.cs +490 -0
  1338. package/Tests/Runtime/Utils/ChildSpawnerTests.cs.meta +11 -0
  1339. package/Tests/Runtime/Utils/CircleLineRendererTests.cs +80 -0
  1340. package/Tests/Runtime/Utils/CircleLineRendererTests.cs.meta +11 -0
  1341. package/Tests/Runtime/Utils/CollisionProxyTests.cs +442 -0
  1342. package/Tests/Runtime/Utils/CollisionProxyTests.cs.meta +11 -0
  1343. package/Tests/Runtime/Utils/CoroutineHandlerTests.cs +353 -0
  1344. package/Tests/Runtime/Utils/CoroutineHandlerTests.cs.meta +11 -0
  1345. package/Tests/Runtime/Utils/DeferredDisposalResultTests.cs +44 -0
  1346. package/Tests/Runtime/Utils/DeferredDisposalResultTests.cs.meta +11 -0
  1347. package/Tests/Runtime/Utils/LZMAComprehensiveTests.cs +249 -0
  1348. package/Tests/Runtime/Utils/LZMAComprehensiveTests.cs.meta +11 -0
  1349. package/Tests/Runtime/Utils/LZMATests.cs +31 -0
  1350. package/Tests/Runtime/Utils/LZMATests.cs.meta +11 -0
  1351. package/Tests/Runtime/Utils/MatchColliderToSpriteAdditionalTests.cs +86 -0
  1352. package/Tests/Runtime/Utils/MatchColliderToSpriteAdditionalTests.cs.meta +11 -0
  1353. package/Tests/Runtime/Utils/MatchColliderToSpriteTests.cs +503 -0
  1354. package/Tests/Runtime/Utils/MatchColliderToSpriteTests.cs.meta +11 -0
  1355. package/Tests/Runtime/Utils/MatchTransformEdgeTests.cs +34 -0
  1356. package/Tests/Runtime/Utils/MatchTransformEdgeTests.cs.meta +11 -0
  1357. package/Tests/Runtime/Utils/MatchTransformTests.cs +495 -0
  1358. package/Tests/Runtime/Utils/MatchTransformTests.cs.meta +11 -0
  1359. package/Tests/Runtime/Utils/OscillatorTests.cs +540 -0
  1360. package/Tests/Runtime/Utils/OscillatorTests.cs.meta +11 -0
  1361. package/Tests/Runtime/Utils/PolygonCollider2DOptimizerTests.cs +52 -0
  1362. package/Tests/Runtime/Utils/PolygonCollider2DOptimizerTests.cs.meta +11 -0
  1363. package/Tests/Runtime/Utils/RuntimeSingletonTests.cs +766 -0
  1364. package/Tests/Runtime/Utils/RuntimeSingletonTests.cs.meta +11 -0
  1365. package/Tests/Runtime/Utils/SerializedStringComparerEdgeTests.cs +47 -0
  1366. package/Tests/Runtime/Utils/SerializedStringComparerEdgeTests.cs.meta +11 -0
  1367. package/Tests/Runtime/Utils/SerializedStringComparerTests.cs +361 -0
  1368. package/Tests/Runtime/Utils/SerializedStringComparerTests.cs.meta +11 -0
  1369. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs +383 -398
  1370. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs.meta +2 -2
  1371. package/Tests/Runtime/Utils/SpriteRendererSyncTests.cs +134 -0
  1372. package/Tests/Runtime/Utils/SpriteRendererSyncTests.cs.meta +11 -0
  1373. package/Tests/Runtime/Utils/StartTrackerTests.cs +24 -0
  1374. package/Tests/Runtime/Utils/StartTrackerTests.cs.meta +11 -0
  1375. package/Tests/Runtime/Utils/TextureScaleEdgeTests.cs +114 -0
  1376. package/Tests/Runtime/Utils/TextureScaleEdgeTests.cs.meta +11 -0
  1377. package/Tests/Runtime/Utils/TextureScaleTests.cs +298 -0
  1378. package/Tests/Runtime/Utils/TextureScaleTests.cs.meta +3 -0
  1379. package/Tests/Runtime/Utils/TypeNameSorterAdditionalTests.cs +36 -0
  1380. package/Tests/Runtime/Utils/TypeNameSorterAdditionalTests.cs.meta +11 -0
  1381. package/Tests/Runtime/Utils/TypeNameSorterTests.cs +34 -0
  1382. package/Tests/Runtime/Utils/TypeNameSorterTests.cs.meta +11 -0
  1383. package/Tests/Runtime/Utils/UnityObjectNameComparerEdgeTests.cs +63 -0
  1384. package/Tests/Runtime/Utils/UnityObjectNameComparerEdgeTests.cs.meta +11 -0
  1385. package/Tests/Runtime/Utils/UnityObjectNameComparerTests.cs +59 -0
  1386. package/Tests/Runtime/Utils/UnityObjectNameComparerTests.cs.meta +11 -0
  1387. package/Tests/Runtime/Utils.meta +2 -2
  1388. package/Tests/Runtime/Visuals/AnimatedSpriteLayerTests.cs +266 -0
  1389. package/Tests/Runtime/Visuals/AnimatedSpriteLayerTests.cs.meta +11 -0
  1390. package/Tests/Runtime/Visuals/EnhancedImageTests.cs +184 -0
  1391. package/Tests/Runtime/Visuals/EnhancedImageTests.cs.meta +11 -0
  1392. package/Tests/Runtime/Visuals/LayeredImageTests.cs +422 -0
  1393. package/Tests/Runtime/Visuals/LayeredImageTests.cs.meta +11 -0
  1394. package/Tests/Runtime/Visuals/VisualsTestHelpers.cs +132 -0
  1395. package/Tests/Runtime/Visuals/VisualsTestHelpers.cs.meta +11 -0
  1396. package/Tests/Runtime/Visuals.meta +3 -0
  1397. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef +24 -23
  1398. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef.meta +7 -7
  1399. package/Tests/Runtime.meta +8 -8
  1400. package/Tests.meta +8 -8
  1401. package/URP/VolumeProfiles/Post Processing Bloom Profile(URP).asset +63 -63
  1402. package/URP/VolumeProfiles/Post Processing Bloom Profile(URP).asset.meta +8 -8
  1403. package/URP/VolumeProfiles.meta +8 -8
  1404. package/URP.meta +8 -8
  1405. package/node_modules.meta +8 -0
  1406. package/package.json +95 -38
  1407. package/package.json.meta +7 -7
  1408. package/scripts/check-eol.ps1 +52 -0
  1409. package/scripts/check-eol.ps1.meta +7 -0
  1410. package/scripts/clean-nul.ps1 +29 -0
  1411. package/scripts/clean-nul.ps1.meta +7 -0
  1412. package/scripts/lint-doc-links.ps1 +80 -0
  1413. package/scripts/lint-doc-links.ps1.meta +7 -0
  1414. package/scripts/normalize-eol.ps1 +71 -0
  1415. package/scripts/normalize-eol.ps1.meta +7 -0
  1416. package/scripts.meta +8 -0
  1417. package/Editor/Sprites/ProjectAnimationSettings.cs +0 -50
  1418. package/Editor/Sprites/ProjectAnimationSettings.cs.meta +0 -3
  1419. package/Editor/Sprites/TextureSettingsApplier.cs +0 -178
  1420. package/Editor/Sprites/TextureSettingsApplier.cs.meta +0 -3
  1421. package/Runtime/Core/Attributes/ParentComponent.cs +0 -189
  1422. package/Runtime/Core/DataStructure/KDTree.cs +0 -434
  1423. package/Runtime/Core/DataStructure/QuadTree.cs +0 -431
  1424. package/Runtime/Core/DataStructure/RTree.cs +0 -356
  1425. package/Runtime/Core/Extension/HashSetExtensions.cs +0 -12
  1426. package/Runtime/Core/Extension/HashSetExtensions.cs.meta +0 -11
  1427. package/Runtime/Core/Math/Line.cs +0 -55
  1428. package/Runtime/Core/Math/Line.cs.meta +0 -11
  1429. package/Runtime/Core/Math/XXHash.cs +0 -310
  1430. package/Runtime/Core/Math/XXHash.cs.meta +0 -11
  1431. package/Tests/Runtime/Components/RelationalComponentsTesterSimple.cs +0 -40
  1432. package/Tests/Runtime/Components.meta +0 -3
  1433. package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs +0 -14
  1434. package/Tests/Runtime/DataStructures/QuadTreeTests.cs +0 -14
  1435. package/Tests/Runtime/DataStructures/QuadTreeTests.cs.meta +0 -11
  1436. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs +0 -130
  1437. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs.meta +0 -11
  1438. package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs +0 -14
  1439. package/Tests/Runtime/Helper/FormattingHelperTests.cs +0 -129
  1440. package/Tests/Runtime/Helper/FormattingHelperTests.cs.meta +0 -3
  1441. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs +0 -14
  1442. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs.meta +0 -11
  1443. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs +0 -14
  1444. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs.meta +0 -11
  1445. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs +0 -158
  1446. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs.meta +0 -11
  1447. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs +0 -14
  1448. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs.meta +0 -11
  1449. package/Third Party Notices.md +0 -1
@@ -0,0 +1,1446 @@
1
+ namespace WallstopStudios.UnityHelpers.Tests.Extensions
2
+ {
3
+ using System;
4
+ using System.Collections;
5
+ using System.Collections.Generic;
6
+ using System.Linq;
7
+ using NUnit.Framework;
8
+ using UnityEngine;
9
+ using UnityEngine.TestTools;
10
+ using UnityEngine.UI;
11
+ using WallstopStudios.UnityHelpers.Core.DataStructure.Adapters;
12
+ using WallstopStudios.UnityHelpers.Core.Extension;
13
+ using WallstopStudios.UnityHelpers.Tests.TestUtils;
14
+
15
+ public sealed class UnityExtensionsComprehensiveTests : CommonTestBase
16
+ {
17
+ private static List<FastVector3Int> GenerateRandomPointsSquare(
18
+ int count,
19
+ int range,
20
+ int seed = 1337
21
+ )
22
+ {
23
+ System.Random rng = new(seed);
24
+ List<FastVector3Int> points = new(count);
25
+ for (int i = 0; i < count; ++i)
26
+ {
27
+ int x = rng.Next(-range, range + 1);
28
+ int y = rng.Next(-range, range + 1);
29
+ points.Add(new FastVector3Int(x, y, 0));
30
+ }
31
+
32
+ return points;
33
+ }
34
+
35
+ private static List<FastVector3Int> GenerateCirclePoints(
36
+ int count,
37
+ int radius,
38
+ int seed = 42
39
+ )
40
+ {
41
+ System.Random rng = new(seed);
42
+ List<FastVector3Int> points = new(count);
43
+ for (int i = 0; i < count; ++i)
44
+ {
45
+ double t = (2.0 * Math.PI * i) / count;
46
+ double jitter = (rng.NextDouble() - 0.5) * 0.05; // slight jitter
47
+ int x = (int)Math.Round(radius * Math.Cos(t + jitter));
48
+ int y = (int)Math.Round(radius * Math.Sin(t + jitter));
49
+ points.Add(new FastVector3Int(x, y, 0));
50
+ }
51
+
52
+ return points;
53
+ }
54
+
55
+ private Grid CreateGrid(out GameObject owner)
56
+ {
57
+ owner = Track(new GameObject("Grid", typeof(Grid)));
58
+ Grid grid = owner.GetComponent<Grid>();
59
+ grid.cellSize = new Vector3(1f, 1f, 1f);
60
+ return grid;
61
+ }
62
+
63
+ [Test]
64
+ public void GetBoundsFromFastVectorCollection()
65
+ {
66
+ List<FastVector3Int> points = new()
67
+ {
68
+ new FastVector3Int(-1, 2, -3),
69
+ new FastVector3Int(4, 5, 1),
70
+ new FastVector3Int(0, -7, 8),
71
+ };
72
+
73
+ BoundsInt? bounds = points.GetBounds();
74
+ Assert.IsTrue(bounds.HasValue);
75
+ BoundsInt value = bounds.Value;
76
+ Assert.AreEqual(-1, value.xMin);
77
+ Assert.AreEqual(5, value.xMax);
78
+ Assert.AreEqual(-7, value.yMin);
79
+ Assert.AreEqual(6, value.yMax);
80
+ Assert.AreEqual(-3, value.zMin);
81
+ Assert.AreEqual(9, value.zMax);
82
+ }
83
+
84
+ [Test]
85
+ public void GetBoundsFromFastVectorCollectionReturnsNullWhenEmpty()
86
+ {
87
+ List<FastVector3Int> points = new();
88
+ Assert.IsNull(points.GetBounds());
89
+ }
90
+
91
+ [Test]
92
+ public void GetBoundsFromFastVectorCollectionWithSinglePoint()
93
+ {
94
+ List<FastVector3Int> points = new() { new FastVector3Int(5, -3, 10) };
95
+ BoundsInt? bounds = points.GetBounds();
96
+ Assert.IsTrue(bounds.HasValue);
97
+ BoundsInt value = bounds.Value;
98
+ Assert.AreEqual(5, value.xMin);
99
+ Assert.AreEqual(6, value.xMax);
100
+ Assert.AreEqual(-3, value.yMin);
101
+ Assert.AreEqual(-2, value.yMax);
102
+ Assert.AreEqual(10, value.zMin);
103
+ Assert.AreEqual(11, value.zMax);
104
+ Assert.AreEqual(new Vector3Int(1, 1, 1), value.size);
105
+ }
106
+
107
+ [Test]
108
+ public void GetBoundsFromFastVectorCollectionWithNegativeCoordinates()
109
+ {
110
+ List<FastVector3Int> points = new()
111
+ {
112
+ new FastVector3Int(-10, -20, -30),
113
+ new FastVector3Int(-5, -15, -25),
114
+ };
115
+ BoundsInt? bounds = points.GetBounds();
116
+ Assert.IsTrue(bounds.HasValue);
117
+ BoundsInt value = bounds.Value;
118
+ Assert.AreEqual(-10, value.xMin);
119
+ Assert.AreEqual(-4, value.xMax);
120
+ Assert.AreEqual(-20, value.yMin);
121
+ Assert.AreEqual(-14, value.yMax);
122
+ Assert.AreEqual(-30, value.zMin);
123
+ Assert.AreEqual(-24, value.zMax);
124
+ }
125
+
126
+ [Test]
127
+ public void GetBoundsFromFastVectorCollectionWithAllSamePoints()
128
+ {
129
+ List<FastVector3Int> points = new()
130
+ {
131
+ new FastVector3Int(7, 7, 7),
132
+ new FastVector3Int(7, 7, 7),
133
+ new FastVector3Int(7, 7, 7),
134
+ };
135
+ BoundsInt? bounds = points.GetBounds();
136
+ Assert.IsTrue(bounds.HasValue);
137
+ BoundsInt value = bounds.Value;
138
+ Assert.AreEqual(7, value.xMin);
139
+ Assert.AreEqual(8, value.xMax);
140
+ Assert.AreEqual(new Vector3Int(7, 7, 7), value.position);
141
+ Assert.AreEqual(new Vector3Int(1, 1, 1), value.size);
142
+ }
143
+
144
+ [Test]
145
+ public void GetBoundsFromFastVectorCollectionWithCollinearPoints()
146
+ {
147
+ List<FastVector3Int> points = new()
148
+ {
149
+ new FastVector3Int(0, 0, 0),
150
+ new FastVector3Int(5, 0, 0),
151
+ new FastVector3Int(10, 0, 0),
152
+ };
153
+ BoundsInt? bounds = points.GetBounds();
154
+ Assert.IsTrue(bounds.HasValue);
155
+ BoundsInt value = bounds.Value;
156
+ Assert.AreEqual(0, value.xMin);
157
+ Assert.AreEqual(11, value.xMax);
158
+ Assert.AreEqual(0, value.yMin);
159
+ Assert.AreEqual(1, value.yMax);
160
+ Assert.AreEqual(0, value.zMin);
161
+ Assert.AreEqual(1, value.zMax);
162
+ Assert.AreEqual(new Vector3Int(11, 1, 1), value.size);
163
+ }
164
+
165
+ [Test]
166
+ public void GetBoundsFromFastVectorCollectionWithExtremeValues()
167
+ {
168
+ List<FastVector3Int> points = new()
169
+ {
170
+ new FastVector3Int(int.MinValue, int.MinValue, int.MinValue),
171
+ new FastVector3Int(int.MaxValue, int.MaxValue, int.MaxValue),
172
+ };
173
+ BoundsInt? bounds = points.GetBounds();
174
+ Assert.IsTrue(bounds.HasValue);
175
+ BoundsInt value = bounds.Value;
176
+ Assert.AreEqual(int.MinValue, value.xMin);
177
+ Assert.AreEqual(int.MinValue, value.yMin);
178
+ Assert.AreEqual(int.MinValue, value.zMin);
179
+ }
180
+
181
+ [Test]
182
+ public void GetBoundsFromVector3IntCollection()
183
+ {
184
+ List<Vector3Int> points = new()
185
+ {
186
+ new Vector3Int(-1, 2, -3),
187
+ new Vector3Int(4, 5, 1),
188
+ new Vector3Int(0, -7, 8),
189
+ };
190
+
191
+ BoundsInt? bounds = points.GetBounds();
192
+ Assert.IsTrue(bounds.HasValue);
193
+ BoundsInt value = bounds.Value;
194
+ Assert.AreEqual(-1, value.xMin);
195
+ Assert.AreEqual(5, value.xMax);
196
+ Assert.AreEqual(-7, value.yMin);
197
+ Assert.AreEqual(6, value.yMax);
198
+ Assert.AreEqual(-3, value.zMin);
199
+ Assert.AreEqual(9, value.zMax);
200
+ }
201
+
202
+ [Test]
203
+ public void GetBoundsFromVector3IntCollectionInclusive()
204
+ {
205
+ List<Vector3Int> points = new()
206
+ {
207
+ new Vector3Int(-1, 2, -3),
208
+ new Vector3Int(4, 5, 1),
209
+ new Vector3Int(0, -7, 8),
210
+ };
211
+
212
+ BoundsInt? bounds = points.GetBounds(inclusive: true);
213
+ Assert.IsTrue(bounds.HasValue);
214
+ BoundsInt value = bounds.Value;
215
+ Assert.AreEqual(-1, value.xMin);
216
+ Assert.AreEqual(4, value.xMax);
217
+ Assert.AreEqual(-7, value.yMin);
218
+ Assert.AreEqual(5, value.yMax);
219
+ Assert.AreEqual(-3, value.zMin);
220
+ Assert.AreEqual(8, value.zMax);
221
+ }
222
+
223
+ [Test]
224
+ public void GetBoundsFromVector3IntCollectionReturnsNullWhenEmpty()
225
+ {
226
+ List<Vector3Int> points = new();
227
+ Assert.IsNull(points.GetBounds());
228
+ }
229
+
230
+ [Test]
231
+ public void GetBoundsFromVector3IntCollectionWithSinglePoint()
232
+ {
233
+ List<Vector3Int> points = new() { new Vector3Int(5, -3, 10) };
234
+ BoundsInt? bounds = points.GetBounds();
235
+ Assert.IsTrue(bounds.HasValue);
236
+ BoundsInt value = bounds.Value;
237
+ Assert.AreEqual(new Vector3Int(5, -3, 10), value.position);
238
+ Assert.AreEqual(new Vector3Int(1, 1, 1), value.size);
239
+ }
240
+
241
+ [Test]
242
+ public void GetBoundsFromVector2Collection()
243
+ {
244
+ List<Vector2> positions = new()
245
+ {
246
+ new Vector2(-2f, 1f),
247
+ new Vector2(3f, -4f),
248
+ new Vector2(0f, 6f),
249
+ };
250
+
251
+ Bounds? maybeBounds = positions.GetBounds();
252
+ Assert.IsTrue(maybeBounds.HasValue);
253
+ Bounds bounds = maybeBounds.Value;
254
+ Assert.AreEqual(new Vector3(0.5f, 1f, 0f), bounds.center);
255
+ Assert.AreEqual(new Vector3(5f, 10f, 0f), bounds.size);
256
+ }
257
+
258
+ [Test]
259
+ public void GetBoundsFromVector2CollectionReturnsNullWhenEmpty()
260
+ {
261
+ Assert.IsNull(new List<Vector2>().GetBounds());
262
+ }
263
+
264
+ [Test]
265
+ public void GetBoundsFromBoundsCollection()
266
+ {
267
+ List<Bounds> bounds = new()
268
+ {
269
+ new Bounds(new Vector3(0f, 0f, 0f), new Vector3(2f, 2f, 2f)),
270
+ new Bounds(new Vector3(5f, 5f, 0f), new Vector3(4f, 4f, 4f)),
271
+ };
272
+
273
+ Bounds? maybe = bounds.GetBounds();
274
+ Assert.IsTrue(maybe.HasValue);
275
+ Bounds combined = maybe.Value;
276
+ Assert.AreEqual(new Vector3(2.5f, 2.5f, 0f), combined.center);
277
+ Assert.AreEqual(new Vector3(8f, 8f, 4f), combined.size);
278
+ }
279
+
280
+ [Test]
281
+ public void GetBoundsFromBoundsCollectionReturnsNullWhenEmpty()
282
+ {
283
+ Assert.IsNull(new List<Bounds>().GetBounds());
284
+ }
285
+
286
+ [UnityTest]
287
+ public IEnumerator BuildConvexHullVector3IntIncludesColinearPointsWhenRequested()
288
+ {
289
+ Grid grid = CreateGrid(out GameObject owner);
290
+ List<Vector3Int> points = new()
291
+ {
292
+ new Vector3Int(0, 0, 0),
293
+ new Vector3Int(0, 2, 0),
294
+ new Vector3Int(2, 2, 0),
295
+ new Vector3Int(2, 0, 0),
296
+ new Vector3Int(1, 0, 0),
297
+ };
298
+
299
+ List<Vector3Int> hull = points.BuildConvexHull(grid, includeColinearPoints: true);
300
+
301
+ CollectionAssert.AreEquivalent(points, hull);
302
+ Assert.AreEqual(new Vector3Int(0, 0, 0), hull[0]);
303
+
304
+ yield return null;
305
+ }
306
+
307
+ [UnityTest]
308
+ public IEnumerator BuildConvexHullVector3IntExcludesColinearPointsWhenDisabled()
309
+ {
310
+ Grid grid = CreateGrid(out GameObject owner);
311
+
312
+ List<Vector3Int> points = new()
313
+ {
314
+ new Vector3Int(0, 0, 0),
315
+ new Vector3Int(0, 2, 0),
316
+ new Vector3Int(2, 2, 0),
317
+ new Vector3Int(2, 0, 0),
318
+ new Vector3Int(1, 0, 0),
319
+ };
320
+
321
+ List<Vector3Int> hull = points.BuildConvexHull(grid, includeColinearPoints: false);
322
+
323
+ CollectionAssert.AreEquivalent(
324
+ new[]
325
+ {
326
+ new Vector3Int(0, 0, 0),
327
+ new Vector3Int(0, 2, 0),
328
+ new Vector3Int(2, 2, 0),
329
+ new Vector3Int(2, 0, 0),
330
+ },
331
+ hull
332
+ );
333
+
334
+ yield return null;
335
+ }
336
+
337
+ [UnityTest]
338
+ public IEnumerator BuildConvexHullFastVector3IntProducesExpectedLoop()
339
+ {
340
+ Grid grid = CreateGrid(out GameObject owner);
341
+
342
+ List<FastVector3Int> points = new()
343
+ {
344
+ new FastVector3Int(0, 0, 0),
345
+ new FastVector3Int(0, 2, 0),
346
+ new FastVector3Int(2, 2, 0),
347
+ new FastVector3Int(2, 0, 0),
348
+ new FastVector3Int(1, 0, 0),
349
+ };
350
+
351
+ List<FastVector3Int> hull = points.BuildConvexHull(grid, includeColinearPoints: false);
352
+
353
+ CollectionAssert.AreEquivalent(
354
+ new[]
355
+ {
356
+ new FastVector3Int(0, 0, 0),
357
+ new FastVector3Int(0, 2, 0),
358
+ new FastVector3Int(2, 2, 0),
359
+ new FastVector3Int(2, 0, 0),
360
+ },
361
+ hull
362
+ );
363
+
364
+ yield return null;
365
+ }
366
+
367
+ [UnityTest]
368
+ public IEnumerator BuildConvexHullFastVector3IntIncludesColinearWhenRequested()
369
+ {
370
+ Grid grid = CreateGrid(out GameObject owner);
371
+
372
+ List<FastVector3Int> points = new()
373
+ {
374
+ new FastVector3Int(0, 0, 0),
375
+ new FastVector3Int(0, 2, 0),
376
+ new FastVector3Int(2, 2, 0),
377
+ new FastVector3Int(2, 0, 0),
378
+ new FastVector3Int(1, 0, 0),
379
+ };
380
+
381
+ List<FastVector3Int> hull = points.BuildConvexHull(grid, includeColinearPoints: true);
382
+
383
+ CollectionAssert.AreEquivalent(points, hull);
384
+
385
+ yield return null;
386
+ }
387
+
388
+ [UnityTest]
389
+ public IEnumerator IsPointInsideConvexHullDetectsContainment()
390
+ {
391
+ Grid grid = CreateGrid(out GameObject owner);
392
+
393
+ List<Vector3Int> hull = new()
394
+ {
395
+ new Vector3Int(0, 0, 0),
396
+ new Vector3Int(0, 2, 0),
397
+ new Vector3Int(2, 2, 0),
398
+ new Vector3Int(2, 0, 0),
399
+ };
400
+
401
+ Assert.IsTrue(hull.IsPointInsideConvexHull(grid, new Vector3Int(1, 1, 0)));
402
+ Assert.IsFalse(hull.IsPointInsideConvexHull(grid, new Vector3Int(3, 3, 0)));
403
+
404
+ yield return null;
405
+ }
406
+
407
+ [UnityTest]
408
+ public IEnumerator IsPointInsideConvexHullTreatsBoundaryAsInside()
409
+ {
410
+ Grid grid = CreateGrid(out GameObject owner);
411
+
412
+ List<Vector3Int> hull = new()
413
+ {
414
+ new Vector3Int(0, 0, 0),
415
+ new Vector3Int(4, 0, 0),
416
+ new Vector3Int(4, 4, 0),
417
+ new Vector3Int(0, 4, 0),
418
+ };
419
+
420
+ Assert.IsTrue(hull.IsPointInsideConvexHull(grid, new Vector3Int(0, 2, 0)));
421
+ Assert.IsTrue(hull.IsPointInsideConvexHull(grid, new Vector3Int(2, 0, 0)));
422
+ Assert.IsFalse(hull.IsPointInsideConvexHull(grid, new Vector3Int(-1, 2, 0)));
423
+
424
+ yield return null;
425
+ }
426
+
427
+ [UnityTest]
428
+ public IEnumerator IsPointInsideConvexHullFastVectorDetectsContainment()
429
+ {
430
+ Grid grid = CreateGrid(out GameObject owner);
431
+
432
+ List<FastVector3Int> hull = new()
433
+ {
434
+ new FastVector3Int(0, 0, 0),
435
+ new FastVector3Int(0, 2, 0),
436
+ new FastVector3Int(2, 2, 0),
437
+ new FastVector3Int(2, 0, 0),
438
+ };
439
+
440
+ Assert.IsTrue(hull.IsPointInsideConvexHull(grid, new FastVector3Int(1, 1, 0)));
441
+ Assert.IsFalse(hull.IsPointInsideConvexHull(grid, new FastVector3Int(3, 3, 0)));
442
+
443
+ yield return null;
444
+ }
445
+
446
+ [UnityTest]
447
+ public IEnumerator IsPointInsideConvexHullFastVectorTreatsBoundaryAsInside()
448
+ {
449
+ Grid grid = CreateGrid(out GameObject owner);
450
+
451
+ List<FastVector3Int> hull = new()
452
+ {
453
+ new FastVector3Int(0, 0, 0),
454
+ new FastVector3Int(4, 0, 0),
455
+ new FastVector3Int(4, 4, 0),
456
+ new FastVector3Int(0, 4, 0),
457
+ };
458
+
459
+ Assert.IsTrue(hull.IsPointInsideConvexHull(grid, new FastVector3Int(0, 2, 0)));
460
+ Assert.IsTrue(hull.IsPointInsideConvexHull(grid, new FastVector3Int(2, 0, 0)));
461
+ Assert.IsFalse(hull.IsPointInsideConvexHull(grid, new FastVector3Int(-1, 2, 0)));
462
+
463
+ yield return null;
464
+ }
465
+
466
+ [UnityTest]
467
+ public IEnumerator IsConvexHullInsideConvexHullValidatesInteriorPoints()
468
+ {
469
+ Grid grid = CreateGrid(out GameObject owner);
470
+
471
+ List<Vector3Int> hull = new()
472
+ {
473
+ new Vector3Int(0, 0, 0),
474
+ new Vector3Int(0, 4, 0),
475
+ new Vector3Int(4, 4, 0),
476
+ new Vector3Int(4, 0, 0),
477
+ };
478
+
479
+ List<Vector3Int> inner = new()
480
+ {
481
+ new Vector3Int(1, 1, 0),
482
+ new Vector3Int(2, 1, 0),
483
+ new Vector3Int(2, 2, 0),
484
+ };
485
+
486
+ Assert.IsTrue(hull.IsConvexHullInsideConvexHull(grid, inner));
487
+ inner.Add(new Vector3Int(5, 5, 0));
488
+ Assert.IsFalse(hull.IsConvexHullInsideConvexHull(grid, inner));
489
+
490
+ yield return null;
491
+ }
492
+
493
+ [UnityTest]
494
+ public IEnumerator IsConvexHullInsideConvexHullHandlesCounterClockwiseOrder()
495
+ {
496
+ Grid grid = CreateGrid(out GameObject owner);
497
+
498
+ List<Vector3Int> hull = new()
499
+ {
500
+ new Vector3Int(0, 0, 0),
501
+ new Vector3Int(4, 0, 0),
502
+ new Vector3Int(4, 4, 0),
503
+ new Vector3Int(0, 4, 0),
504
+ };
505
+
506
+ List<Vector3Int> inner = new()
507
+ {
508
+ new Vector3Int(1, 1, 0),
509
+ new Vector3Int(2, 2, 0),
510
+ new Vector3Int(3, 1, 0),
511
+ };
512
+
513
+ Assert.IsTrue(hull.IsConvexHullInsideConvexHull(grid, inner));
514
+ inner.Add(new Vector3Int(-1, 0, 0));
515
+ Assert.IsFalse(hull.IsConvexHullInsideConvexHull(grid, inner));
516
+
517
+ yield return null;
518
+ }
519
+
520
+ [UnityTest]
521
+ public IEnumerator IsConvexHullInsideConvexHullFastVectorValidatesInteriorPoints()
522
+ {
523
+ Grid grid = CreateGrid(out GameObject owner);
524
+
525
+ List<FastVector3Int> hull = new()
526
+ {
527
+ new FastVector3Int(0, 0, 0),
528
+ new FastVector3Int(0, 4, 0),
529
+ new FastVector3Int(4, 4, 0),
530
+ new FastVector3Int(4, 0, 0),
531
+ };
532
+
533
+ List<FastVector3Int> inner = new()
534
+ {
535
+ new FastVector3Int(1, 1, 0),
536
+ new FastVector3Int(2, 1, 0),
537
+ new FastVector3Int(2, 2, 0),
538
+ };
539
+
540
+ Assert.IsTrue(hull.IsConvexHullInsideConvexHull(grid, inner));
541
+ inner.Add(new FastVector3Int(5, 5, 0));
542
+ Assert.IsFalse(hull.IsConvexHullInsideConvexHull(grid, inner));
543
+
544
+ yield return null;
545
+ }
546
+
547
+ [UnityTest]
548
+ public IEnumerator IsConvexHullInsideConvexHullFastVectorHandlesCounterClockwiseOrder()
549
+ {
550
+ Grid grid = CreateGrid(out GameObject owner);
551
+
552
+ List<FastVector3Int> hull = new()
553
+ {
554
+ new FastVector3Int(0, 0, 0),
555
+ new FastVector3Int(4, 0, 0),
556
+ new FastVector3Int(4, 4, 0),
557
+ new FastVector3Int(0, 4, 0),
558
+ };
559
+
560
+ List<FastVector3Int> inner = new()
561
+ {
562
+ new FastVector3Int(1, 1, 0),
563
+ new FastVector3Int(2, 2, 0),
564
+ new FastVector3Int(3, 1, 0),
565
+ };
566
+
567
+ Assert.IsTrue(hull.IsConvexHullInsideConvexHull(grid, inner));
568
+ inner.Add(new FastVector3Int(-1, 0, 0));
569
+ Assert.IsFalse(hull.IsConvexHullInsideConvexHull(grid, inner));
570
+
571
+ yield return null;
572
+ }
573
+
574
+ [UnityTest]
575
+ public IEnumerator BuildConcaveHullVariantsMatchConvexHullForRectangle()
576
+ {
577
+ Grid grid = CreateGrid(out GameObject owner);
578
+
579
+ List<FastVector3Int> points = new()
580
+ {
581
+ new FastVector3Int(0, 0, 0),
582
+ new FastVector3Int(0, 3, 0),
583
+ new FastVector3Int(3, 3, 0),
584
+ new FastVector3Int(3, 0, 0),
585
+ };
586
+
587
+ List<FastVector3Int> convex = points.BuildConvexHull(
588
+ grid,
589
+ includeColinearPoints: false
590
+ );
591
+ List<FastVector3Int> concaveEdgeSplit = points.BuildConcaveHullEdgeSplit(grid);
592
+ List<FastVector3Int> concaveKnn = points.BuildConcaveHullKnn(grid);
593
+ List<FastVector3Int> concave = points.BuildConcaveHull(
594
+ grid,
595
+ new UnityExtensions.ConcaveHullOptions
596
+ {
597
+ Strategy = UnityExtensions.ConcaveHullStrategy.EdgeSplit,
598
+ }
599
+ );
600
+
601
+ CollectionAssert.AreEquivalent(convex, concaveEdgeSplit);
602
+ CollectionAssert.AreEquivalent(convex, concaveKnn);
603
+
604
+ CollectionAssert.AreEquivalent(convex, concave);
605
+
606
+ yield return null;
607
+ }
608
+
609
+ [UnityTest]
610
+ public IEnumerator ConvexHullExcludesInteriorColinearPointsFast()
611
+ {
612
+ Grid grid = CreateGrid(out GameObject owner);
613
+
614
+ List<FastVector3Int> points = new()
615
+ {
616
+ new FastVector3Int(-2, 0, 0),
617
+ new FastVector3Int(-1, 0, 0),
618
+ new FastVector3Int(0, 0, 0),
619
+ new FastVector3Int(1, 0, 0),
620
+ new FastVector3Int(2, 0, 0),
621
+ };
622
+
623
+ List<FastVector3Int> hull = points.BuildConvexHull(grid);
624
+ CollectionAssert.AreEquivalent(
625
+ new[] { new FastVector3Int(-2, 0, 0), new FastVector3Int(2, 0, 0) },
626
+ hull
627
+ );
628
+
629
+ yield return null;
630
+ }
631
+
632
+ [UnityTest]
633
+ public IEnumerator ConvexHullPermutationInvariance()
634
+ {
635
+ Grid grid = CreateGrid(out GameObject owner);
636
+
637
+ List<FastVector3Int> points = new()
638
+ {
639
+ new FastVector3Int(0, 0, 0),
640
+ new FastVector3Int(3, 0, 0),
641
+ new FastVector3Int(3, 3, 0),
642
+ new FastVector3Int(0, 3, 0),
643
+ new FastVector3Int(1, 1, 0), // interior
644
+ };
645
+ List<FastVector3Int> expected = new()
646
+ {
647
+ new FastVector3Int(0, 0, 0),
648
+ new FastVector3Int(3, 0, 0),
649
+ new FastVector3Int(3, 3, 0),
650
+ new FastVector3Int(0, 3, 0),
651
+ };
652
+
653
+ List<FastVector3Int> hullA = points.BuildConvexHull(grid);
654
+ points.Reverse();
655
+ List<FastVector3Int> hullB = points.BuildConvexHull(grid);
656
+ CollectionAssert.AreEquivalent(expected, hullA);
657
+ CollectionAssert.AreEquivalent(expected, hullB);
658
+
659
+ yield return null;
660
+ }
661
+
662
+ [UnityTest]
663
+ public IEnumerator BuildConcaveHullVariantsMatchConvexHullForTriangle()
664
+ {
665
+ Grid grid = CreateGrid(out GameObject owner);
666
+
667
+ List<FastVector3Int> points = new()
668
+ {
669
+ new FastVector3Int(0, 0, 0),
670
+ new FastVector3Int(0, 3, 0),
671
+ new FastVector3Int(3, 3, 0),
672
+ new FastVector3Int(3, 0, 0),
673
+ };
674
+
675
+ List<FastVector3Int> convex = points.BuildConvexHull(
676
+ grid,
677
+ includeColinearPoints: false
678
+ );
679
+ List<FastVector3Int> concaveEdgeSplit = points.BuildConcaveHullEdgeSplit(grid);
680
+ List<FastVector3Int> concaveKnn = points.BuildConcaveHullKnn(grid);
681
+ List<FastVector3Int> concave = points.BuildConcaveHull(
682
+ grid,
683
+ new UnityExtensions.ConcaveHullOptions
684
+ {
685
+ Strategy = UnityExtensions.ConcaveHullStrategy.EdgeSplit,
686
+ }
687
+ );
688
+
689
+ CollectionAssert.AreEquivalent(convex, concaveEdgeSplit);
690
+ CollectionAssert.AreEquivalent(convex, concaveKnn);
691
+ CollectionAssert.AreEquivalent(convex, concave);
692
+
693
+ yield return null;
694
+ }
695
+
696
+ [UnityTest]
697
+ public IEnumerator ConcaveHullTrivialShapesReturnConvexHull()
698
+ {
699
+ Grid grid = CreateGrid(out GameObject owner);
700
+
701
+ // Two points
702
+ List<FastVector3Int> twoPoints = new()
703
+ {
704
+ new FastVector3Int(0, 0, 0),
705
+ new FastVector3Int(3, 0, 0),
706
+ };
707
+
708
+ List<FastVector3Int> convexTwo = twoPoints.BuildConvexHull(grid);
709
+ List<FastVector3Int> concaveTwoEdgeSplit = twoPoints.BuildConcaveHullEdgeSplit(grid);
710
+ List<FastVector3Int> concaveTwoKnn = twoPoints.BuildConcaveHullKnn(grid);
711
+ List<FastVector3Int> concaveTwo = twoPoints.BuildConcaveHull(
712
+ grid,
713
+ new UnityExtensions.ConcaveHullOptions
714
+ {
715
+ Strategy = UnityExtensions.ConcaveHullStrategy.EdgeSplit,
716
+ }
717
+ );
718
+ CollectionAssert.AreEquivalent(convexTwo, concaveTwoEdgeSplit);
719
+ CollectionAssert.AreEquivalent(convexTwo, concaveTwoKnn);
720
+ CollectionAssert.AreEquivalent(convexTwo, concaveTwo);
721
+
722
+ // Three points
723
+ List<FastVector3Int> threePoints = new()
724
+ {
725
+ new FastVector3Int(0, 0, 0),
726
+ new FastVector3Int(2, 0, 0),
727
+ new FastVector3Int(1, 1, 0),
728
+ };
729
+ List<FastVector3Int> convexThree = threePoints.BuildConvexHull(grid);
730
+ List<FastVector3Int> concaveThreeEdgeSplit = threePoints.BuildConcaveHullEdgeSplit(
731
+ grid
732
+ );
733
+ List<FastVector3Int> concaveThreeKnn = threePoints.BuildConcaveHullKnn(grid);
734
+ List<FastVector3Int> concaveThree = threePoints.BuildConcaveHull(
735
+ grid,
736
+ new UnityExtensions.ConcaveHullOptions
737
+ {
738
+ Strategy = UnityExtensions.ConcaveHullStrategy.EdgeSplit,
739
+ }
740
+ );
741
+ CollectionAssert.AreEquivalent(convexThree, concaveThreeEdgeSplit);
742
+ CollectionAssert.AreEquivalent(convexThree, concaveThreeKnn);
743
+ CollectionAssert.AreEquivalent(convexThree, concaveThree);
744
+
745
+ // Four points (rectangle)
746
+ List<FastVector3Int> rectangle = new()
747
+ {
748
+ new FastVector3Int(0, 0, 0),
749
+ new FastVector3Int(0, 3, 0),
750
+ new FastVector3Int(3, 3, 0),
751
+ new FastVector3Int(3, 0, 0),
752
+ };
753
+ List<FastVector3Int> convexRect = rectangle.BuildConvexHull(grid);
754
+ List<FastVector3Int> concaveRectEdgeSplit = rectangle.BuildConcaveHullEdgeSplit(grid);
755
+ List<FastVector3Int> concaveRectKnn = rectangle.BuildConcaveHullKnn(grid);
756
+ List<FastVector3Int> concaveRect = rectangle.BuildConcaveHull(
757
+ grid,
758
+ new UnityExtensions.ConcaveHullOptions
759
+ {
760
+ Strategy = UnityExtensions.ConcaveHullStrategy.EdgeSplit,
761
+ }
762
+ );
763
+ CollectionAssert.AreEquivalent(convexRect, concaveRectEdgeSplit);
764
+ CollectionAssert.AreEquivalent(convexRect, concaveRectKnn);
765
+ CollectionAssert.AreEquivalent(convexRect, concaveRect);
766
+
767
+ yield return null;
768
+ }
769
+
770
+ [UnityTest]
771
+ public IEnumerator ConcaveHullHandlesDuplicatesAndColinear()
772
+ {
773
+ Grid grid = CreateGrid(out GameObject owner);
774
+
775
+ // Duplicates and colinear points along X-axis
776
+ List<FastVector3Int> points = new()
777
+ {
778
+ new FastVector3Int(0, 0, 0),
779
+ new FastVector3Int(0, 0, 0),
780
+ new FastVector3Int(1, 0, 0),
781
+ new FastVector3Int(2, 0, 0),
782
+ new FastVector3Int(2, 0, 0),
783
+ };
784
+
785
+ List<FastVector3Int> convex = points.BuildConvexHull(grid);
786
+ // Expect convex hull to be endpoints only
787
+ CollectionAssert.AreEquivalent(
788
+ new[] { new FastVector3Int(0, 0, 0), new FastVector3Int(2, 0, 0) },
789
+ convex
790
+ );
791
+
792
+ List<FastVector3Int> concaveEdgeSplit = points.BuildConcaveHullEdgeSplit(grid);
793
+ List<FastVector3Int> concaveKnn = points.BuildConcaveHullKnn(grid);
794
+ List<FastVector3Int> concave = points.BuildConcaveHull(
795
+ grid,
796
+ new UnityExtensions.ConcaveHullOptions
797
+ {
798
+ Strategy = UnityExtensions.ConcaveHullStrategy.EdgeSplit,
799
+ }
800
+ );
801
+
802
+ CollectionAssert.AreEquivalent(convex, concaveEdgeSplit);
803
+ CollectionAssert.AreEquivalent(convex, concaveKnn);
804
+ CollectionAssert.AreEquivalent(convex, concave);
805
+
806
+ yield return null;
807
+ }
808
+
809
+ [UnityTest]
810
+ public IEnumerator ConvexHullAllPointsIdenticalReturnsSinglePoint()
811
+ {
812
+ Grid grid = CreateGrid(out GameObject owner);
813
+
814
+ List<FastVector3Int> points = Enumerable
815
+ .Repeat(new FastVector3Int(5, 5, 0), 20)
816
+ .ToList();
817
+ List<FastVector3Int> convex = points.BuildConvexHull(grid);
818
+ List<FastVector3Int> concaveEdgeSplit = points.BuildConcaveHullEdgeSplit(grid);
819
+ List<FastVector3Int> concaveKnn = points.BuildConcaveHullKnn(grid);
820
+ List<FastVector3Int> concave = points.BuildConcaveHull(
821
+ grid,
822
+ new UnityExtensions.ConcaveHullOptions
823
+ {
824
+ Strategy = UnityExtensions.ConcaveHullStrategy.EdgeSplit,
825
+ }
826
+ );
827
+
828
+ Assert.AreEqual(1, convex.Count);
829
+ CollectionAssert.AreEquivalent(convex, concaveEdgeSplit);
830
+ CollectionAssert.AreEquivalent(convex, concaveKnn);
831
+ CollectionAssert.AreEquivalent(convex, concave);
832
+
833
+ yield return null;
834
+ }
835
+
836
+ [UnityTest]
837
+ public IEnumerator ConvexHullWithDuplicatesAndFourCornersReturnsCornersConcaveMatches()
838
+ {
839
+ Grid grid = CreateGrid(out GameObject owner);
840
+
841
+ List<FastVector3Int> points = new()
842
+ {
843
+ new FastVector3Int(0, 0, 0),
844
+ new FastVector3Int(0, 0, 0),
845
+ new FastVector3Int(0, 0, 0),
846
+ new FastVector3Int(5, 0, 0),
847
+ new FastVector3Int(5, 0, 0),
848
+ new FastVector3Int(5, 5, 0),
849
+ new FastVector3Int(0, 5, 0),
850
+ new FastVector3Int(0, 5, 0),
851
+ new FastVector3Int(2, 0, 0),
852
+ new FastVector3Int(3, 0, 0), // colinear along bottom
853
+ new FastVector3Int(5, 3, 0),
854
+ new FastVector3Int(5, 2, 0), // colinear along right
855
+ };
856
+
857
+ List<FastVector3Int> convex = points.BuildConvexHull(grid);
858
+ CollectionAssert.AreEquivalent(
859
+ new[]
860
+ {
861
+ new FastVector3Int(0, 0, 0),
862
+ new FastVector3Int(5, 0, 0),
863
+ new FastVector3Int(5, 5, 0),
864
+ new FastVector3Int(0, 5, 0),
865
+ },
866
+ convex
867
+ );
868
+
869
+ List<FastVector3Int> concaveEdgeSplit = points.BuildConcaveHullEdgeSplit(grid);
870
+ List<FastVector3Int> concaveKnn = points.BuildConcaveHullKnn(grid);
871
+ List<FastVector3Int> concave = points.BuildConcaveHull(
872
+ grid,
873
+ new UnityExtensions.ConcaveHullOptions
874
+ {
875
+ Strategy = UnityExtensions.ConcaveHullStrategy.EdgeSplit,
876
+ }
877
+ );
878
+ CollectionAssert.AreEquivalent(convex, concaveEdgeSplit);
879
+ CollectionAssert.AreEquivalent(convex, concaveKnn);
880
+ CollectionAssert.AreEquivalent(convex, concave);
881
+
882
+ yield return null;
883
+ }
884
+
885
+ [UnityTest]
886
+ public IEnumerator LargePointCloudConcaveHullsInsideConvexHull()
887
+ {
888
+ Grid grid = CreateGrid(out GameObject owner);
889
+
890
+ List<FastVector3Int> points = GenerateRandomPointsSquare(600, 50, seed: 4242);
891
+ // Ensure a few extremes are present
892
+ points.AddRange(
893
+ new[]
894
+ {
895
+ new FastVector3Int(-50, -50, 0),
896
+ new FastVector3Int(50, -50, 0),
897
+ new FastVector3Int(50, 50, 0),
898
+ new FastVector3Int(-50, 50, 0),
899
+ }
900
+ );
901
+
902
+ List<FastVector3Int> convex = points.BuildConvexHull(grid);
903
+ List<FastVector3Int> concaveEdgeSplit = points.BuildConcaveHullEdgeSplit(grid);
904
+ List<FastVector3Int> concaveKnn = points.BuildConcaveHullKnn(grid);
905
+ List<FastVector3Int> concave = points.BuildConcaveHull(
906
+ grid,
907
+ new UnityExtensions.ConcaveHullOptions
908
+ {
909
+ Strategy = UnityExtensions.ConcaveHullStrategy.EdgeSplit,
910
+ }
911
+ );
912
+
913
+ // No duplicates in hulls
914
+ Assert.AreEqual(convex.Distinct().Count(), convex.Count);
915
+ Assert.AreEqual(concaveEdgeSplit.Distinct().Count(), concaveEdgeSplit.Count);
916
+ Assert.AreEqual(concaveKnn.Distinct().Count(), concaveKnn.Count);
917
+ Assert.AreEqual(concave.Distinct().Count(), concave.Count);
918
+
919
+ // Hull points must be drawn from input set
920
+ HashSet<FastVector3Int> input = new(points);
921
+ Assert.IsTrue(convex.All(p => input.Contains(p)));
922
+ Assert.IsTrue(concaveEdgeSplit.All(p => input.Contains(p)));
923
+ Assert.IsTrue(concaveKnn.All(p => input.Contains(p)));
924
+ Assert.IsTrue(concave.All(p => input.Contains(p)));
925
+
926
+ // Concave hulls are inside convex hull
927
+ Assert.IsTrue(convex.IsConvexHullInsideConvexHull(grid, concaveEdgeSplit));
928
+ Assert.IsTrue(convex.IsConvexHullInsideConvexHull(grid, concaveKnn));
929
+ Assert.IsTrue(convex.IsConvexHullInsideConvexHull(grid, concave));
930
+
931
+ yield return null;
932
+ }
933
+
934
+ [UnityTest]
935
+ public IEnumerator LargePointCloudConvexHullReasonableAndContainsExtremes()
936
+ {
937
+ Grid grid = CreateGrid(out GameObject owner);
938
+
939
+ List<FastVector3Int> points = GenerateRandomPointsSquare(800, 100, seed: 2025);
940
+ points.AddRange(
941
+ new[]
942
+ {
943
+ new FastVector3Int(-100, -100, 0),
944
+ new FastVector3Int(100, -100, 0),
945
+ new FastVector3Int(100, 100, 0),
946
+ new FastVector3Int(-100, 100, 0),
947
+ }
948
+ );
949
+ yield break;
950
+ }
951
+
952
+ [UnityTest]
953
+ public IEnumerator ConvexHullCirclePointsAllOnHull()
954
+ {
955
+ Grid grid = CreateGrid(out GameObject owner);
956
+
957
+ List<FastVector3Int> circle = GenerateCirclePoints(64, 25);
958
+ List<FastVector3Int> hull = circle.BuildConvexHull(grid, includeColinearPoints: true);
959
+ // On a (rough) circle with integer coordinates, most points should be part of the convex hull
960
+ // Note: Jarvis March may skip some hull vertices on curves when jumping between non-collinear points
961
+ // We expect at least 75% of distinct points to be included
962
+ int distinctCount = circle.Distinct().Count();
963
+ Assert.GreaterOrEqual(
964
+ hull.Count,
965
+ distinctCount * 3 / 4,
966
+ $"Expected at least {distinctCount * 3 / 4} points in hull, got {hull.Count}"
967
+ );
968
+ CollectionAssert.IsSubsetOf(hull, circle);
969
+ // Verify no duplicates in hull
970
+ Assert.AreEqual(
971
+ hull.Distinct().Count(),
972
+ hull.Count,
973
+ "Hull should not contain duplicates"
974
+ );
975
+
976
+ yield return null;
977
+ }
978
+
979
+ [UnityTest]
980
+ public IEnumerator ConvexHullRectanglePerimeterOnlyCorners()
981
+ {
982
+ Grid grid = CreateGrid(out GameObject owner);
983
+
984
+ List<FastVector3Int> rectPerimeter = new();
985
+ for (int x = 0; x <= 10; ++x)
986
+ {
987
+ rectPerimeter.Add(new FastVector3Int(x, 0, 0));
988
+ rectPerimeter.Add(new FastVector3Int(x, 6, 0));
989
+ }
990
+ for (int y = 1; y < 6; ++y)
991
+ {
992
+ rectPerimeter.Add(new FastVector3Int(0, y, 0));
993
+ rectPerimeter.Add(new FastVector3Int(10, y, 0));
994
+ }
995
+
996
+ List<FastVector3Int> hull = rectPerimeter.BuildConvexHull(grid);
997
+ CollectionAssert.AreEquivalent(
998
+ new[]
999
+ {
1000
+ new FastVector3Int(0, 0, 0),
1001
+ new FastVector3Int(10, 0, 0),
1002
+ new FastVector3Int(10, 6, 0),
1003
+ new FastVector3Int(0, 6, 0),
1004
+ },
1005
+ hull
1006
+ );
1007
+
1008
+ yield return null;
1009
+ }
1010
+
1011
+ [UnityTest]
1012
+ public IEnumerator ConvexHullRectanglePerimeterIncludeColinearKeepsEdgePoints()
1013
+ {
1014
+ Grid grid = CreateGrid(out GameObject owner);
1015
+
1016
+ List<FastVector3Int> rectPerimeter = new();
1017
+ for (int x = 0; x <= 10; ++x)
1018
+ {
1019
+ rectPerimeter.Add(new FastVector3Int(x, 0, 0));
1020
+ rectPerimeter.Add(new FastVector3Int(x, 6, 0));
1021
+ }
1022
+ for (int y = 1; y < 6; ++y)
1023
+ {
1024
+ rectPerimeter.Add(new FastVector3Int(0, y, 0));
1025
+ rectPerimeter.Add(new FastVector3Int(10, y, 0));
1026
+ }
1027
+
1028
+ List<FastVector3Int> hull = rectPerimeter.BuildConvexHull(
1029
+ grid,
1030
+ includeColinearPoints: true
1031
+ );
1032
+
1033
+ // Corners must be present
1034
+ CollectionAssert.IsSubsetOf(
1035
+ new[]
1036
+ {
1037
+ new FastVector3Int(0, 0, 0),
1038
+ new FastVector3Int(10, 0, 0),
1039
+ new FastVector3Int(10, 6, 0),
1040
+ new FastVector3Int(0, 6, 0),
1041
+ },
1042
+ hull
1043
+ );
1044
+
1045
+ // Edge points included when including colinear points
1046
+ CollectionAssert.IsSubsetOf(
1047
+ new[]
1048
+ {
1049
+ new FastVector3Int(2, 0, 0),
1050
+ new FastVector3Int(3, 0, 0),
1051
+ new FastVector3Int(10, 2, 0),
1052
+ new FastVector3Int(10, 3, 0),
1053
+ },
1054
+ hull
1055
+ );
1056
+
1057
+ Assert.Greater(hull.Count, 4);
1058
+
1059
+ yield return null;
1060
+ }
1061
+
1062
+ [UnityTest]
1063
+ public IEnumerator RandomCloudMultipleSeedsConvexContainsConcaves()
1064
+ {
1065
+ Grid grid = CreateGrid(out GameObject owner);
1066
+
1067
+ int[] seeds = { 11, 123, 9999 };
1068
+ foreach (int seed in seeds)
1069
+ {
1070
+ List<FastVector3Int> points = GenerateRandomPointsSquare(300, 40, seed);
1071
+ List<FastVector3Int> convex = points.BuildConvexHull(grid);
1072
+ List<FastVector3Int> concaveEdgeSplit = points.BuildConcaveHullEdgeSplit(grid);
1073
+ List<FastVector3Int> concaveKnn = points.BuildConcaveHullKnn(grid);
1074
+ List<FastVector3Int> concave = points.BuildConcaveHull(
1075
+ grid,
1076
+ new UnityExtensions.ConcaveHullOptions
1077
+ {
1078
+ Strategy = UnityExtensions.ConcaveHullStrategy.EdgeSplit,
1079
+ }
1080
+ );
1081
+
1082
+ // Invariants: no duplicates and hull points are from input
1083
+ Assert.AreEqual(convex.Distinct().Count(), convex.Count);
1084
+ Assert.AreEqual(concaveEdgeSplit.Distinct().Count(), concaveEdgeSplit.Count);
1085
+ Assert.AreEqual(concaveKnn.Distinct().Count(), concaveKnn.Count);
1086
+ Assert.AreEqual(concave.Distinct().Count(), concave.Count);
1087
+
1088
+ HashSet<FastVector3Int> input = new(points);
1089
+ Assert.IsTrue(convex.All(input.Contains));
1090
+ Assert.IsTrue(concaveEdgeSplit.All(input.Contains));
1091
+ Assert.IsTrue(concaveKnn.All(input.Contains));
1092
+ Assert.IsTrue(concave.All(input.Contains));
1093
+
1094
+ // Concave hulls must be inside convex hull
1095
+ Assert.IsTrue(convex.IsConvexHullInsideConvexHull(grid, concaveEdgeSplit));
1096
+ Assert.IsTrue(convex.IsConvexHullInsideConvexHull(grid, concaveKnn));
1097
+ Assert.IsTrue(convex.IsConvexHullInsideConvexHull(grid, concave));
1098
+ }
1099
+
1100
+ yield return null;
1101
+ }
1102
+
1103
+ [UnityTest]
1104
+ public IEnumerator CrossShapeConvexCornersConcavesSubset()
1105
+ {
1106
+ Grid grid = CreateGrid(out GameObject owner);
1107
+
1108
+ // Cross shape: long plus sign
1109
+ List<FastVector3Int> points = new();
1110
+ for (int i = -5; i <= 5; ++i)
1111
+ {
1112
+ points.Add(new FastVector3Int(i, 0, 0));
1113
+ points.Add(new FastVector3Int(0, i, 0));
1114
+ }
1115
+ points.Add(new FastVector3Int(-6, 0, 0));
1116
+ points.Add(new FastVector3Int(6, 0, 0));
1117
+ points.Add(new FastVector3Int(0, -6, 0));
1118
+ points.Add(new FastVector3Int(0, 6, 0));
1119
+
1120
+ List<FastVector3Int> convex = points.BuildConvexHull(grid);
1121
+ List<FastVector3Int> concaveEdgeSplit = points.BuildConcaveHullEdgeSplit(grid);
1122
+ List<FastVector3Int> concaveKnn = points.BuildConcaveHullKnn(grid);
1123
+ List<FastVector3Int> concave = points.BuildConcaveHull(
1124
+ grid,
1125
+ new UnityExtensions.ConcaveHullOptions
1126
+ {
1127
+ Strategy = UnityExtensions.ConcaveHullStrategy.EdgeSplit,
1128
+ }
1129
+ );
1130
+
1131
+ // Expected convex corners of cross’s bounding box
1132
+ CollectionAssert.AreEquivalent(
1133
+ new[]
1134
+ {
1135
+ new FastVector3Int(-6, 0, 0),
1136
+ new FastVector3Int(6, 0, 0),
1137
+ new FastVector3Int(0, -6, 0),
1138
+ new FastVector3Int(0, 6, 0),
1139
+ },
1140
+ convex
1141
+ );
1142
+
1143
+ // Concave hulls should be subsets of convex; do not assert exact points
1144
+ HashSet<FastVector3Int> convexSet = new(convex);
1145
+ Assert.IsTrue(concaveEdgeSplit.All(p => convexSet.Contains(p) || points.Contains(p)));
1146
+ Assert.IsTrue(concaveKnn.All(p => convexSet.Contains(p) || points.Contains(p)));
1147
+ Assert.IsTrue(concave.All(p => convexSet.Contains(p) || points.Contains(p)));
1148
+ Assert.IsTrue(convex.IsConvexHullInsideConvexHull(grid, concaveEdgeSplit));
1149
+ Assert.IsTrue(convex.IsConvexHullInsideConvexHull(grid, concaveKnn));
1150
+ Assert.IsTrue(convex.IsConvexHullInsideConvexHull(grid, concave));
1151
+
1152
+ yield return null;
1153
+ }
1154
+
1155
+ [UnityTest]
1156
+ public IEnumerator UShapeConcaveInsideConvex()
1157
+ {
1158
+ Grid grid = CreateGrid(out GameObject owner);
1159
+
1160
+ // U-shape perimeter
1161
+ List<FastVector3Int> u = new();
1162
+ for (int x = 0; x <= 8; ++x)
1163
+ {
1164
+ u.Add(new FastVector3Int(x, 0, 0));
1165
+ }
1166
+ for (int y = 1; y <= 6; ++y)
1167
+ {
1168
+ u.Add(new FastVector3Int(0, y, 0));
1169
+ u.Add(new FastVector3Int(8, y, 0));
1170
+ }
1171
+
1172
+ List<FastVector3Int> convex = u.BuildConvexHull(grid);
1173
+ List<FastVector3Int> concaveEdgeSplit = u.BuildConcaveHullEdgeSplit(grid);
1174
+ List<FastVector3Int> concaveKnn = u.BuildConcaveHullKnn(grid);
1175
+ List<FastVector3Int> concave = u.BuildConcaveHull(
1176
+ grid,
1177
+ new UnityExtensions.ConcaveHullOptions
1178
+ {
1179
+ Strategy = UnityExtensions.ConcaveHullStrategy.EdgeSplit,
1180
+ }
1181
+ );
1182
+
1183
+ // Invariants without over-constraining shape
1184
+ Assert.IsTrue(convex.IsConvexHullInsideConvexHull(grid, concaveEdgeSplit));
1185
+ Assert.IsTrue(convex.IsConvexHullInsideConvexHull(grid, concaveKnn));
1186
+ Assert.IsTrue(convex.IsConvexHullInsideConvexHull(grid, concave));
1187
+ Assert.IsTrue(concaveEdgeSplit.All(p => u.Contains(p)));
1188
+ Assert.IsTrue(concaveKnn.All(p => u.Contains(p)));
1189
+ Assert.IsTrue(concave.All(p => u.Contains(p)));
1190
+
1191
+ yield return null;
1192
+ }
1193
+
1194
+ [UnityTest]
1195
+ public IEnumerator IsPositionInsideDetectsInsideAndOutside()
1196
+ {
1197
+ Grid grid = CreateGrid(out GameObject owner);
1198
+
1199
+ List<FastVector3Int> hull = new()
1200
+ {
1201
+ new FastVector3Int(0, 0, 0),
1202
+ new FastVector3Int(0, 4, 0),
1203
+ new FastVector3Int(4, 4, 0),
1204
+ new FastVector3Int(4, 0, 0),
1205
+ };
1206
+
1207
+ Assert.IsTrue(
1208
+ UnityExtensions.IsPositionInside(hull, new FastVector3Int(1, 1, 0), grid)
1209
+ );
1210
+ Assert.IsFalse(
1211
+ UnityExtensions.IsPositionInside(hull, new FastVector3Int(5, 5, 0), grid)
1212
+ );
1213
+
1214
+ yield return null;
1215
+ }
1216
+
1217
+ [Test]
1218
+ public void GetCosineMatchesExpectedValue()
1219
+ {
1220
+ Vector2 a = new(1f, 0f);
1221
+ Vector3 b = new(0f, 1f, 0f);
1222
+ Vector3 origin = Vector3.zero;
1223
+
1224
+ double cosine = UnityExtensions.GetCosine(a, b, origin);
1225
+ Assert.AreEqual(0d, cosine);
1226
+ }
1227
+
1228
+ [Test]
1229
+ public void IntersectsDetectsLineSegmentIntersection()
1230
+ {
1231
+ Vector2 a1 = new(0f, 0f);
1232
+ Vector2 a2 = new(2f, 2f);
1233
+ Vector2 b1 = new(0f, 2f);
1234
+ Vector2 b2 = new(2f, 0f);
1235
+
1236
+ Assert.IsTrue(UnityExtensions.Intersects(a1, a2, b1, b2));
1237
+ Assert.IsFalse(
1238
+ UnityExtensions.Intersects(a1, a2, new Vector2(3f, 3f), new Vector2(4f, 4f))
1239
+ );
1240
+ }
1241
+
1242
+ [Test]
1243
+ public void LiesOnSegmentDetectsColinearPoint()
1244
+ {
1245
+ Vector2 p = new(0f, 0f);
1246
+ Vector2 q = new(1f, 1f);
1247
+ Vector2 r = new(2f, 2f);
1248
+ Assert.IsTrue(UnityExtensions.LiesOnSegment(p, q, r));
1249
+ Assert.IsFalse(UnityExtensions.LiesOnSegment(p, new Vector2(3f, 1f), r));
1250
+ }
1251
+
1252
+ [Test]
1253
+ public void AllFastPositionsWithinEnumeratesEveryCell()
1254
+ {
1255
+ BoundsInt bounds = new(0, 0, 0, 2, 2, 1);
1256
+ List<FastVector3Int> buffer = new();
1257
+ List<FastVector3Int> list = bounds.AllFastPositionsWithin(buffer);
1258
+ List<FastVector3Int> enumerated = bounds.AllFastPositionsWithin().ToList();
1259
+
1260
+ CollectionAssert.AreEquivalent(list, enumerated);
1261
+ Assert.AreEqual(4, list.Count);
1262
+ Assert.Contains(new FastVector3Int(1, 1, 0), list);
1263
+ }
1264
+
1265
+ [Test]
1266
+ public void ContainsFastVectorReturnsFalseOutside()
1267
+ {
1268
+ BoundsInt bounds = new(0, 0, 0, 2, 2, 2);
1269
+ Assert.IsFalse(bounds.Contains(new FastVector3Int(2, 2, 2)));
1270
+ }
1271
+
1272
+ [Test]
1273
+ public void IsOnEdge2DDetectsEdgeAndInterior()
1274
+ {
1275
+ BoundsInt bounds = new(0, 0, 0, 3, 3, 1);
1276
+ Assert.IsTrue(new FastVector3Int(0, 1, 0).IsOnEdge2D(bounds));
1277
+ Assert.IsTrue(new FastVector3Int(2, 2, 0).IsOnEdge2D(bounds));
1278
+ Assert.IsFalse(new FastVector3Int(1, 1, 0).IsOnEdge2D(bounds));
1279
+ }
1280
+
1281
+ [UnityTest]
1282
+ public IEnumerator WithPaddingAndSetOffsetsManipulateRectTransform()
1283
+ {
1284
+ GameObject owner = Track(new GameObject("RectTransformTest", typeof(RectTransform)));
1285
+
1286
+ RectTransform rectTransform = owner.GetComponent<RectTransform>();
1287
+ rectTransform.offsetMin = Vector2.zero;
1288
+ rectTransform.offsetMax = Vector2.zero;
1289
+
1290
+ rectTransform.SetLeft(10f);
1291
+ rectTransform.SetBottom(5f);
1292
+ rectTransform.SetRight(15f);
1293
+ rectTransform.SetTop(20f);
1294
+
1295
+ Assert.AreEqual(10f, rectTransform.offsetMin.x);
1296
+ Assert.AreEqual(5f, rectTransform.offsetMin.y);
1297
+ Assert.AreEqual(-15f, rectTransform.offsetMax.x);
1298
+ Assert.AreEqual(-20f, rectTransform.offsetMax.y);
1299
+
1300
+ BoundsInt bounds = new(0, 0, 0, 1, 1, 1);
1301
+ BoundsInt padded = bounds.WithPadding(2, 3);
1302
+ Assert.AreEqual(-2, padded.xMin);
1303
+ Assert.AreEqual(3, padded.xMax);
1304
+ Assert.AreEqual(-3, padded.yMin);
1305
+ Assert.AreEqual(4, padded.yMax);
1306
+
1307
+ yield return null;
1308
+ }
1309
+
1310
+ [UnityTest]
1311
+ public IEnumerator SetColorsAppliesColorAcrossStates()
1312
+ {
1313
+ GameObject owner = Track(new GameObject("SliderTest", typeof(Canvas), typeof(Slider)));
1314
+
1315
+ Slider slider = owner.GetComponent<Slider>();
1316
+ Color color = new(0.25f, 0.5f, 0.75f, 1f);
1317
+ slider.SetColors(color);
1318
+
1319
+ ColorBlock block = slider.colors;
1320
+ Assert.AreEqual(color, block.normalColor);
1321
+ Assert.AreEqual(color, block.highlightedColor);
1322
+ Assert.AreEqual(color, block.pressedColor);
1323
+ Assert.AreEqual(color, block.selectedColor);
1324
+ Assert.AreEqual(color, block.disabledColor);
1325
+
1326
+ yield return null;
1327
+ }
1328
+
1329
+ [UnityTest]
1330
+ public IEnumerator IsDontDestroyOnLoadDetectsFlag()
1331
+ {
1332
+ GameObject owner = Track(new GameObject("DontDestroyTest"));
1333
+
1334
+ Assert.IsFalse(owner.IsDontDestroyOnLoad());
1335
+ UnityEngine.Object.DontDestroyOnLoad(owner);
1336
+ Assert.IsTrue(owner.IsDontDestroyOnLoad());
1337
+
1338
+ yield return null;
1339
+ }
1340
+
1341
+ [UnityTest]
1342
+ public IEnumerator IsCircleFullyContainedValidatesBoundary()
1343
+ {
1344
+ GameObject owner = Track(
1345
+ new GameObject("CircleColliderTest", typeof(CircleCollider2D))
1346
+ );
1347
+
1348
+ CircleCollider2D collider = owner.GetComponent<CircleCollider2D>();
1349
+ collider.radius = 1f;
1350
+
1351
+ Assert.IsTrue(collider.IsCircleFullyContained(Vector2.zero, 0.5f));
1352
+ Assert.IsFalse(collider.IsCircleFullyContained(Vector2.zero, 1.5f));
1353
+
1354
+ yield return null;
1355
+ }
1356
+
1357
+ [UnityTest]
1358
+ public IEnumerator InvertPolygonColliderCreatesOuterPath()
1359
+ {
1360
+ GameObject owner = Track(
1361
+ new GameObject("PolygonColliderTest", typeof(PolygonCollider2D))
1362
+ );
1363
+
1364
+ PolygonCollider2D collider = owner.GetComponent<PolygonCollider2D>();
1365
+ collider.pathCount = 1;
1366
+ collider.SetPath(
1367
+ 0,
1368
+ new[]
1369
+ {
1370
+ new Vector2(0f, 0f),
1371
+ new Vector2(0f, 1f),
1372
+ new Vector2(1f, 1f),
1373
+ new Vector2(1f, 0f),
1374
+ }
1375
+ );
1376
+
1377
+ Rect outer = new(-1f, -1f, 4f, 4f);
1378
+ collider.Invert(outer);
1379
+
1380
+ Assert.AreEqual(2, collider.pathCount);
1381
+ Vector2[] outerPath = collider.GetPath(0);
1382
+ CollectionAssert.AreEqual(
1383
+ new[]
1384
+ {
1385
+ new Vector2(outer.xMin, outer.yMin),
1386
+ new Vector2(outer.xMin, outer.yMax),
1387
+ new Vector2(outer.xMax, outer.yMax),
1388
+ new Vector2(outer.xMax, outer.yMin),
1389
+ },
1390
+ outerPath
1391
+ );
1392
+
1393
+ Vector2[] innerPath = collider.GetPath(1);
1394
+ CollectionAssert.AreEqual(
1395
+ new[]
1396
+ {
1397
+ new Vector2(1f, 0f),
1398
+ new Vector2(1f, 1f),
1399
+ new Vector2(0f, 1f),
1400
+ new Vector2(0f, 0f),
1401
+ },
1402
+ innerPath
1403
+ );
1404
+
1405
+ yield return null;
1406
+ }
1407
+
1408
+ #if UNITY_EDITOR
1409
+ [UnityTest]
1410
+ public IEnumerator GetSpritesFromClipEnumeratesKeyframes()
1411
+ {
1412
+ Texture2D texture = Track(new Texture2D(16, 16));
1413
+
1414
+ Sprite spriteA = Track(
1415
+ Sprite.Create(texture, new Rect(0f, 0f, 8f, 8f), new Vector2(0.5f, 0.5f))
1416
+ );
1417
+ Sprite spriteB = Track(
1418
+ Sprite.Create(texture, new Rect(0f, 0f, 8f, 8f), new Vector2(0.5f, 0.5f))
1419
+ );
1420
+ AnimationClip clip = Track(new AnimationClip());
1421
+
1422
+ UnityEditor.EditorCurveBinding binding = new()
1423
+ {
1424
+ path = string.Empty,
1425
+ propertyName = "m_Sprite",
1426
+ type = typeof(SpriteRenderer),
1427
+ };
1428
+
1429
+ UnityEditor.ObjectReferenceKeyframe[] frames =
1430
+ {
1431
+ new() { time = 0f, value = spriteA },
1432
+ new() { time = 1f, value = spriteB },
1433
+ };
1434
+
1435
+ UnityEditor.AnimationUtility.SetObjectReferenceCurve(clip, binding, frames);
1436
+
1437
+ List<Sprite> sprites = clip.GetSpritesFromClip().ToList();
1438
+ Assert.AreEqual(2, sprites.Count);
1439
+ Assert.Contains(spriteA, sprites);
1440
+ Assert.Contains(spriteB, sprites);
1441
+
1442
+ yield return null;
1443
+ }
1444
+ #endif
1445
+ }
1446
+ }