com.wallstop-studios.unity-helpers 1.0.0-rc4

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 (238) hide show
  1. package/.gitattributes +63 -0
  2. package/CHANGELOG.md +0 -0
  3. package/CHANGELOG.md.meta +7 -0
  4. package/Editor/AnimationCreator.cs +218 -0
  5. package/Editor/AnimationCreator.cs.meta +11 -0
  6. package/Editor/AnimationEventEditor.cs +742 -0
  7. package/Editor/AnimationEventEditor.cs.meta +11 -0
  8. package/Editor/PrefabCheckWizard.cs +140 -0
  9. package/Editor/PrefabCheckWizard.cs.meta +11 -0
  10. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef +16 -0
  11. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef.meta +7 -0
  12. package/Editor.meta +8 -0
  13. package/LICENSE +21 -0
  14. package/LICENSE.md +7 -0
  15. package/LICENSE.md.meta +7 -0
  16. package/LICENSE.meta +7 -0
  17. package/README.md +2 -0
  18. package/README.md.meta +7 -0
  19. package/Runtime/Core/Attributes/AnimationEventAttribute.cs +102 -0
  20. package/Runtime/Core/Attributes/AnimationEventAttribute.cs.meta +11 -0
  21. package/Runtime/Core/Attributes/AutomaticallyFindAttribute.cs +43 -0
  22. package/Runtime/Core/Attributes/AutomaticallyFindAttribute.cs.meta +11 -0
  23. package/Runtime/Core/Attributes/ChildComponentAttribute.cs +85 -0
  24. package/Runtime/Core/Attributes/ChildComponentAttribute.cs.meta +11 -0
  25. package/Runtime/Core/Attributes/KSerializableAttribute.cs +23 -0
  26. package/Runtime/Core/Attributes/KSerializableAttribute.cs.meta +11 -0
  27. package/Runtime/Core/Attributes/NotNullAttribute.cs +33 -0
  28. package/Runtime/Core/Attributes/NotNullAttribute.cs.meta +11 -0
  29. package/Runtime/Core/Attributes/ParentComponent.cs +85 -0
  30. package/Runtime/Core/Attributes/ParentComponent.cs.meta +11 -0
  31. package/Runtime/Core/Attributes/ReadOnlyAttribute.cs +8 -0
  32. package/Runtime/Core/Attributes/ReadOnlyAttribute.cs.meta +11 -0
  33. package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +14 -0
  34. package/Runtime/Core/Attributes/RelationalComponentExtensions.cs.meta +11 -0
  35. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +89 -0
  36. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs.meta +11 -0
  37. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs +66 -0
  38. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs.meta +11 -0
  39. package/Runtime/Core/Attributes.meta +8 -0
  40. package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs +91 -0
  41. package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs.meta +11 -0
  42. package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs +180 -0
  43. package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs.meta +11 -0
  44. package/Runtime/Core/DataStructure/Adapters/KGuid.cs +274 -0
  45. package/Runtime/Core/DataStructure/Adapters/KGuid.cs.meta +11 -0
  46. package/Runtime/Core/DataStructure/Adapters/KVector2.cs +79 -0
  47. package/Runtime/Core/DataStructure/Adapters/KVector2.cs.meta +11 -0
  48. package/Runtime/Core/DataStructure/Adapters.meta +8 -0
  49. package/Runtime/Core/DataStructure/Circle.cs +50 -0
  50. package/Runtime/Core/DataStructure/Circle.cs.meta +11 -0
  51. package/Runtime/Core/DataStructure/CyclicBuffer.cs +130 -0
  52. package/Runtime/Core/DataStructure/CyclicBuffer.cs.meta +11 -0
  53. package/Runtime/Core/DataStructure/ISpatialTree.cs +58 -0
  54. package/Runtime/Core/DataStructure/ISpatialTree.cs.meta +11 -0
  55. package/Runtime/Core/DataStructure/KDTree.cs +186 -0
  56. package/Runtime/Core/DataStructure/KDTree.cs.meta +11 -0
  57. package/Runtime/Core/DataStructure/QuadTree.cs +184 -0
  58. package/Runtime/Core/DataStructure/QuadTree.cs.meta +11 -0
  59. package/Runtime/Core/DataStructure/RTree.cs +247 -0
  60. package/Runtime/Core/DataStructure/RTree.cs.meta +11 -0
  61. package/Runtime/Core/DataStructure/StringWrapper.cs +90 -0
  62. package/Runtime/Core/DataStructure/StringWrapper.cs.meta +11 -0
  63. package/Runtime/Core/DataStructure/TimedCache.cs +50 -0
  64. package/Runtime/Core/DataStructure/TimedCache.cs.meta +11 -0
  65. package/Runtime/Core/DataStructure.meta +8 -0
  66. package/Runtime/Core/Extension/AnimatorExtensions.cs +25 -0
  67. package/Runtime/Core/Extension/AnimatorExtensions.cs.meta +11 -0
  68. package/Runtime/Core/Extension/CircleExtensions.cs +25 -0
  69. package/Runtime/Core/Extension/CircleExtensions.cs.meta +11 -0
  70. package/Runtime/Core/Extension/ColorExtensions.cs +72 -0
  71. package/Runtime/Core/Extension/ColorExtensions.cs.meta +11 -0
  72. package/Runtime/Core/Extension/DictionaryExtensions.cs +173 -0
  73. package/Runtime/Core/Extension/DictionaryExtensions.cs.meta +11 -0
  74. package/Runtime/Core/Extension/DirectionExtensions.cs +210 -0
  75. package/Runtime/Core/Extension/DirectionExtensions.cs.meta +11 -0
  76. package/Runtime/Core/Extension/HashSetExtensions.cs +12 -0
  77. package/Runtime/Core/Extension/HashSetExtensions.cs.meta +11 -0
  78. package/Runtime/Core/Extension/IEnumerableExtensions.cs +109 -0
  79. package/Runtime/Core/Extension/IEnumerableExtensions.cs.meta +11 -0
  80. package/Runtime/Core/Extension/IListExtensions.cs +49 -0
  81. package/Runtime/Core/Extension/IListExtensions.cs.meta +11 -0
  82. package/Runtime/Core/Extension/LoggingExtensions.cs +196 -0
  83. package/Runtime/Core/Extension/LoggingExtensions.cs.meta +11 -0
  84. package/Runtime/Core/Extension/RandomExtensions.cs +110 -0
  85. package/Runtime/Core/Extension/RandomExtensions.cs.meta +11 -0
  86. package/Runtime/Core/Extension/StringExtensions.cs +76 -0
  87. package/Runtime/Core/Extension/StringExtensions.cs.meta +11 -0
  88. package/Runtime/Core/Extension/UnityExtensions.cs +1409 -0
  89. package/Runtime/Core/Extension/UnityExtensions.cs.meta +11 -0
  90. package/Runtime/Core/Extension.meta +8 -0
  91. package/Runtime/Core/Helper/AssignUtilities.cs +14 -0
  92. package/Runtime/Core/Helper/AssignUtilities.cs.meta +11 -0
  93. package/Runtime/Core/Helper/Enumerables.cs +17 -0
  94. package/Runtime/Core/Helper/Enumerables.cs.meta +11 -0
  95. package/Runtime/Core/Helper/Geometry.cs +26 -0
  96. package/Runtime/Core/Helper/Geometry.cs.meta +11 -0
  97. package/Runtime/Core/Helper/Helpers.cs +1092 -0
  98. package/Runtime/Core/Helper/Helpers.cs.meta +11 -0
  99. package/Runtime/Core/Helper/IterationHelpers.cs +32 -0
  100. package/Runtime/Core/Helper/IterationHelpers.cs.meta +11 -0
  101. package/Runtime/Core/Helper/LifetimeHelpers.cs +12 -0
  102. package/Runtime/Core/Helper/LifetimeHelpers.cs.meta +11 -0
  103. package/Runtime/Core/Helper/Objects.cs +447 -0
  104. package/Runtime/Core/Helper/Objects.cs.meta +11 -0
  105. package/Runtime/Core/Helper/SpriteHelpers.cs +53 -0
  106. package/Runtime/Core/Helper/SpriteHelpers.cs.meta +11 -0
  107. package/Runtime/Core/Helper/StringInList.cs +31 -0
  108. package/Runtime/Core/Helper/StringInList.cs.meta +11 -0
  109. package/Runtime/Core/Helper/WallMath.cs +75 -0
  110. package/Runtime/Core/Helper/WallMath.cs.meta +11 -0
  111. package/Runtime/Core/Helper.meta +8 -0
  112. package/Runtime/Core/Math/Line.cs +51 -0
  113. package/Runtime/Core/Math/Line.cs.meta +11 -0
  114. package/Runtime/Core/Math/Parabola.cs +44 -0
  115. package/Runtime/Core/Math/Parabola.cs.meta +11 -0
  116. package/Runtime/Core/Math/PointPolygonCheck.cs +25 -0
  117. package/Runtime/Core/Math/PointPolygonCheck.cs.meta +11 -0
  118. package/Runtime/Core/Math/Range.cs +56 -0
  119. package/Runtime/Core/Math/Range.cs.meta +11 -0
  120. package/Runtime/Core/Math/XXHash.cs +308 -0
  121. package/Runtime/Core/Math/XXHash.cs.meta +11 -0
  122. package/Runtime/Core/Math.meta +8 -0
  123. package/Runtime/Core/Model/Direction.cs +26 -0
  124. package/Runtime/Core/Model/Direction.cs.meta +11 -0
  125. package/Runtime/Core/Model.meta +8 -0
  126. package/Runtime/Core/OneOf/FastOneOf.cs +145 -0
  127. package/Runtime/Core/OneOf/FastOneOf.cs.meta +11 -0
  128. package/Runtime/Core/OneOf/None.cs +6 -0
  129. package/Runtime/Core/OneOf/None.cs.meta +11 -0
  130. package/Runtime/Core/OneOf.meta +8 -0
  131. package/Runtime/Core/Random/AbstractRandom.cs +537 -0
  132. package/Runtime/Core/Random/AbstractRandom.cs.meta +11 -0
  133. package/Runtime/Core/Random/IRandom.cs +141 -0
  134. package/Runtime/Core/Random/IRandom.cs.meta +11 -0
  135. package/Runtime/Core/Random/NativePcgRandom.cs +97 -0
  136. package/Runtime/Core/Random/NativePcgRandom.cs.meta +11 -0
  137. package/Runtime/Core/Random/PcgRandom.cs +142 -0
  138. package/Runtime/Core/Random/PcgRandom.cs.meta +11 -0
  139. package/Runtime/Core/Random/RandomState.cs +92 -0
  140. package/Runtime/Core/Random/RandomState.cs.meta +11 -0
  141. package/Runtime/Core/Random/RandomUtilities.cs +26 -0
  142. package/Runtime/Core/Random/RandomUtilities.cs.meta +11 -0
  143. package/Runtime/Core/Random/SquirrelRandom.cs +82 -0
  144. package/Runtime/Core/Random/SquirrelRandom.cs.meta +11 -0
  145. package/Runtime/Core/Random/SystemRandom.cs +110 -0
  146. package/Runtime/Core/Random/SystemRandom.cs.meta +11 -0
  147. package/Runtime/Core/Random/ThreadLocalRandom.cs +11 -0
  148. package/Runtime/Core/Random/ThreadLocalRandom.cs.meta +11 -0
  149. package/Runtime/Core/Random/UnityRandom.cs +24 -0
  150. package/Runtime/Core/Random/UnityRandom.cs.meta +11 -0
  151. package/Runtime/Core/Random/XorShiftRandom.cs +45 -0
  152. package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -0
  153. package/Runtime/Core/Random.meta +8 -0
  154. package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +32 -0
  155. package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs.meta +11 -0
  156. package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +32 -0
  157. package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs.meta +11 -0
  158. package/Runtime/Core/Serialization/JsonConverters.meta +8 -0
  159. package/Runtime/Core/Serialization/Serializer.cs +125 -0
  160. package/Runtime/Core/Serialization/Serializer.cs.meta +11 -0
  161. package/Runtime/Core/Serialization.meta +8 -0
  162. package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +102 -0
  163. package/Runtime/Core/Threading/SingleThreadedThreadPool.cs.meta +11 -0
  164. package/Runtime/Core/Threading.meta +8 -0
  165. package/Runtime/Core.meta +8 -0
  166. package/Runtime/Protobuf-Net/System.Buffers.dll +0 -0
  167. package/Runtime/Protobuf-Net/System.Buffers.dll.meta +33 -0
  168. package/Runtime/Protobuf-Net/System.Collections.Immutable.dll +0 -0
  169. package/Runtime/Protobuf-Net/System.Collections.Immutable.dll.meta +33 -0
  170. package/Runtime/Protobuf-Net/System.Numerics.Vectors.dll +0 -0
  171. package/Runtime/Protobuf-Net/System.Numerics.Vectors.dll.meta +33 -0
  172. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll +0 -0
  173. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll.meta +33 -0
  174. package/Runtime/Protobuf-Net/protobuf-net.Core.dll +0 -0
  175. package/Runtime/Protobuf-Net/protobuf-net.Core.dll.meta +33 -0
  176. package/Runtime/Protobuf-Net/protobuf-net.dll +0 -0
  177. package/Runtime/Protobuf-Net/protobuf-net.dll.meta +33 -0
  178. package/Runtime/Protobuf-Net.meta +8 -0
  179. package/Runtime/Utils/AnimationEventEqualityComparer.cs +149 -0
  180. package/Runtime/Utils/AnimationEventEqualityComparer.cs.meta +11 -0
  181. package/Runtime/Utils/AnimatorEnumStateMachine.cs +80 -0
  182. package/Runtime/Utils/AnimatorEnumStateMachine.cs.meta +11 -0
  183. package/Runtime/Utils/Buffers.cs +32 -0
  184. package/Runtime/Utils/Buffers.cs.meta +11 -0
  185. package/Runtime/Utils/CircleLineRenderer.cs +122 -0
  186. package/Runtime/Utils/CircleLineRenderer.cs.meta +11 -0
  187. package/Runtime/Utils/Oscillator.cs +25 -0
  188. package/Runtime/Utils/Oscillator.cs.meta +11 -0
  189. package/Runtime/Utils/SetTextureImportData.cs +67 -0
  190. package/Runtime/Utils/SetTextureImportData.cs.meta +11 -0
  191. package/Runtime/Utils.meta +8 -0
  192. package/Runtime/WallstopStudios.UnityHelpers.asmdef +14 -0
  193. package/Runtime/WallstopStudios.UnityHelpers.asmdef.meta +7 -0
  194. package/Runtime.meta +8 -0
  195. package/Tests/Editor/WallstopStudios.UnityHelpers.Tests.Editor.asmdef +17 -0
  196. package/Tests/Editor/WallstopStudios.UnityHelpers.Tests.Editor.asmdef.meta +7 -0
  197. package/Tests/Editor.meta +8 -0
  198. package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs +14 -0
  199. package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs.meta +11 -0
  200. package/Tests/Runtime/DataStructures/QuadTreeTests.cs +14 -0
  201. package/Tests/Runtime/DataStructures/QuadTreeTests.cs.meta +11 -0
  202. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs +106 -0
  203. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs.meta +11 -0
  204. package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs +14 -0
  205. package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs.meta +11 -0
  206. package/Tests/Runtime/DataStructures.meta +8 -0
  207. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs +14 -0
  208. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs.meta +11 -0
  209. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs +14 -0
  210. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs.meta +11 -0
  211. package/Tests/Runtime/Performance/RandomPerformanceTests.cs +76 -0
  212. package/Tests/Runtime/Performance/RandomPerformanceTests.cs.meta +11 -0
  213. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs +141 -0
  214. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs.meta +11 -0
  215. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs +14 -0
  216. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs.meta +11 -0
  217. package/Tests/Runtime/Performance.meta +8 -0
  218. package/Tests/Runtime/Random/PcgRandomTests.cs +9 -0
  219. package/Tests/Runtime/Random/PcgRandomTests.cs.meta +11 -0
  220. package/Tests/Runtime/Random/RandomTestBase.cs +117 -0
  221. package/Tests/Runtime/Random/RandomTestBase.cs.meta +11 -0
  222. package/Tests/Runtime/Random/SquirrelRandomTests.cs +9 -0
  223. package/Tests/Runtime/Random/SquirrelRandomTests.cs.meta +11 -0
  224. package/Tests/Runtime/Random/SystemRandomTests.cs +10 -0
  225. package/Tests/Runtime/Random/SystemRandomTests.cs.meta +11 -0
  226. package/Tests/Runtime/Random/UnityRandomTests.cs +9 -0
  227. package/Tests/Runtime/Random/UnityRandomTests.cs.meta +11 -0
  228. package/Tests/Runtime/Random/XorShiftRandomTests.cs +9 -0
  229. package/Tests/Runtime/Random/XorShiftRandomTests.cs.meta +11 -0
  230. package/Tests/Runtime/Random.meta +8 -0
  231. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef +22 -0
  232. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef.meta +7 -0
  233. package/Tests/Runtime.meta +8 -0
  234. package/Tests.meta +8 -0
  235. package/Third Party Notices.md +1 -0
  236. package/Third Party Notices.md.meta +7 -0
  237. package/package.json +35 -0
  238. package/package.json.meta +7 -0
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: bc3173e205cdcfc4887e432c2c77a82c
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,32 @@
1
+ namespace UnityHelpers.Core.Helper
2
+ {
3
+ using System.Collections.Generic;
4
+
5
+ public static class IterationHelpers
6
+ {
7
+ public static IEnumerable<(int, int)> IndexOver<T>(this T[,] array)
8
+ {
9
+ for (int i = 0; i < array.GetLength(0); i++)
10
+ {
11
+ for (int j = 0; j < array.GetLength(1); j++)
12
+ {
13
+ yield return (i, j);
14
+ }
15
+ }
16
+ }
17
+
18
+ public static IEnumerable<(int, int, int)> IndexOver<T>(this T[,,] array)
19
+ {
20
+ for (int i = 0; i < array.GetLength(0); i++)
21
+ {
22
+ for (int j = 0; j < array.GetLength(1); j++)
23
+ {
24
+ for (int k = 0; k < array.GetLength(2); k++)
25
+ {
26
+ yield return (i, j, k);
27
+ }
28
+ }
29
+ }
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 54d52a56950a4cdf8839778fa23a9047
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,12 @@
1
+ namespace UnityHelpers.Core.Helper
2
+ {
3
+ using Object = UnityEngine.Object;
4
+
5
+ public static class LifetimeHelpers
6
+ {
7
+ public static void Destroy<T>(this T source, float? afterTime = null) where T : Object
8
+ {
9
+ source.SmartDestroy(afterTime);
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: ea2fd993d32f4de99c8470019c604060
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,447 @@
1
+ namespace UnityHelpers.Core.Helper
2
+ {
3
+ using System;
4
+ using System.Collections;
5
+ using System.Runtime.CompilerServices;
6
+ using Object = System.Object;
7
+
8
+ public static class Objects
9
+ {
10
+ private const int HashBase = 839;
11
+ private const int HashMultiplier = 4021;
12
+
13
+ public static T FromWeakReference<T>(WeakReference weakReference) where T : class
14
+ {
15
+ object empty = weakReference.Target;
16
+ return (T)empty;
17
+ }
18
+
19
+ public static bool Null(UnityEngine.Object instance)
20
+ {
21
+ return instance == null;
22
+ }
23
+
24
+ public static bool Null(Object instance)
25
+ {
26
+ return instance == null;
27
+ }
28
+
29
+ public static bool NotNull(UnityEngine.Object instance)
30
+ {
31
+ return instance != null;
32
+ }
33
+
34
+ public static bool NotNull(Object instance)
35
+ {
36
+ return instance != null;
37
+ }
38
+
39
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
40
+ public static int NullSafeHashCode<T>(T param)
41
+ {
42
+ Type type = typeof(T);
43
+ if (type.IsValueType)
44
+ {
45
+ return param.GetHashCode();
46
+ }
47
+
48
+ return param == null ? type.GetHashCode() : param.GetHashCode();
49
+ }
50
+
51
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
52
+ public static int ValueTypeHashCode<T1>(T1 param1) where T1 : unmanaged
53
+ {
54
+ unchecked
55
+ {
56
+ return HashBase * HashMultiplier + param1.GetHashCode();
57
+ }
58
+ }
59
+
60
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
61
+ public static int ValueTypeHashCode<T1, T2>(T1 param1, T2 param2)
62
+ where T1 : unmanaged
63
+ where T2 : unmanaged
64
+ {
65
+ unchecked
66
+ {
67
+ return ValueTypeHashCode(param1) * HashMultiplier + param2.GetHashCode();
68
+ }
69
+ }
70
+
71
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
72
+ public static int ValueTypeHashCode<T1, T2, T3>(T1 param1, T2 param2, T3 param3)
73
+ where T1 : unmanaged where T2 : unmanaged where T3 : unmanaged
74
+ {
75
+ unchecked
76
+ {
77
+ return ValueTypeHashCode(param1, param2) * HashMultiplier + param3.GetHashCode();
78
+ }
79
+ }
80
+
81
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
82
+ public static int ValueTypeHashCode<T1, T2, T3, T4>(T1 param1, T2 param2, T3 param3, T4 param4)
83
+ where T1 : unmanaged
84
+ where T2 : unmanaged
85
+ where T3 : unmanaged
86
+ where T4 : unmanaged
87
+ {
88
+ unchecked
89
+ {
90
+ return ValueTypeHashCode(param1, param2, param3) * HashMultiplier + param4.GetHashCode();
91
+ }
92
+ }
93
+
94
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
95
+ public static int ValueTypeHashCode<T1, T2, T3, T4, T5>(T1 param1, T2 param2, T3 param3, T4 param4, T5 param5)
96
+ where T1 : unmanaged
97
+ where T2 : unmanaged
98
+ where T3 : unmanaged
99
+ where T4 : unmanaged
100
+ where T5 : unmanaged
101
+ {
102
+ unchecked
103
+ {
104
+ return ValueTypeHashCode(param1, param2, param3, param4) * HashMultiplier + param5.GetHashCode();
105
+ }
106
+ }
107
+
108
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
109
+ public static int ValueTypeHashCode<T1, T2, T3, T4, T5, T6>(T1 param1, T2 param2, T3 param3, T4 param4,
110
+ T5 param5, T6 param6)
111
+ where T1 : unmanaged
112
+ where T2 : unmanaged
113
+ where T3 : unmanaged
114
+ where T4 : unmanaged
115
+ where T5 : unmanaged
116
+ where T6 : unmanaged
117
+ {
118
+ unchecked
119
+ {
120
+ return ValueTypeHashCode(param1, param2, param3, param4, param5) *
121
+ HashMultiplier + param6.GetHashCode();
122
+ }
123
+ }
124
+
125
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
126
+ public static int ValueTypeHashCode<T1, T2, T3, T4, T5, T6, T7>(T1 param1, T2 param2, T3 param3, T4 param4,
127
+ T5 param5, T6 param6, T7 param7)
128
+ where T1 : unmanaged
129
+ where T2 : unmanaged
130
+ where T3 : unmanaged
131
+ where T4 : unmanaged
132
+ where T5 : unmanaged
133
+ where T6 : unmanaged
134
+ where T7 : unmanaged
135
+ {
136
+ unchecked
137
+ {
138
+ return ValueTypeHashCode(param1, param2, param3, param4, param5, param6) *
139
+ HashMultiplier + param7.GetHashCode();
140
+ }
141
+ }
142
+
143
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
144
+ public static int ValueTypeHashCode<T1, T2, T3, T4, T5, T6, T7, T8>(T1 param1, T2 param2, T3 param3, T4 param4,
145
+ T5 param5, T6 param6, T7 param7, T8 param8)
146
+ where T1 : unmanaged
147
+ where T2 : unmanaged
148
+ where T3 : unmanaged
149
+ where T4 : unmanaged
150
+ where T5 : unmanaged
151
+ where T6 : unmanaged
152
+ where T7 : unmanaged
153
+ where T8 : unmanaged
154
+ {
155
+ unchecked
156
+ {
157
+ return ValueTypeHashCode(param1, param2, param3, param4, param5, param6, param7) *
158
+ HashMultiplier + param8.GetHashCode();
159
+ }
160
+ }
161
+
162
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
163
+ public static int ValueTypeHashCode<T1, T2, T3, T4, T5, T6, T7, T8, T9>(T1 param1, T2 param2, T3 param3, T4 param4,
164
+ T5 param5, T6 param6, T7 param7, T8 param8, T9 param9)
165
+ where T1 : unmanaged
166
+ where T2 : unmanaged
167
+ where T3 : unmanaged
168
+ where T4 : unmanaged
169
+ where T5 : unmanaged
170
+ where T6 : unmanaged
171
+ where T7 : unmanaged
172
+ where T8 : unmanaged
173
+ where T9 : unmanaged
174
+ {
175
+ unchecked
176
+ {
177
+ return ValueTypeHashCode(param1, param2, param3, param4, param5, param6, param7, param8) *
178
+ HashMultiplier + param9.GetHashCode();
179
+ }
180
+ }
181
+
182
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
183
+ public static int ValueTypeHashCode<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(T1 param1, T2 param2, T3 param3, T4 param4,
184
+ T5 param5, T6 param6, T7 param7, T8 param8, T9 param9, T10 param10)
185
+ where T1 : unmanaged
186
+ where T2 : unmanaged
187
+ where T3 : unmanaged
188
+ where T4 : unmanaged
189
+ where T5 : unmanaged
190
+ where T6 : unmanaged
191
+ where T7 : unmanaged
192
+ where T8 : unmanaged
193
+ where T9 : unmanaged
194
+ where T10: unmanaged
195
+ {
196
+ unchecked
197
+ {
198
+ return ValueTypeHashCode(param1, param2, param3, param4, param5, param6, param7, param8, param9) *
199
+ HashMultiplier + param10.GetHashCode();
200
+ }
201
+ }
202
+
203
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
204
+ public static int ValueTypeHashCode<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(T1 param1, T2 param2, T3 param3, T4 param4,
205
+ T5 param5, T6 param6, T7 param7, T8 param8, T9 param9, T10 param10, T11 param11)
206
+ where T1 : unmanaged
207
+ where T2 : unmanaged
208
+ where T3 : unmanaged
209
+ where T4 : unmanaged
210
+ where T5 : unmanaged
211
+ where T6 : unmanaged
212
+ where T7 : unmanaged
213
+ where T8 : unmanaged
214
+ where T9 : unmanaged
215
+ where T10 : unmanaged
216
+ where T11 : unmanaged
217
+ {
218
+ unchecked
219
+ {
220
+ return ValueTypeHashCode(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) *
221
+ HashMultiplier + param11.GetHashCode();
222
+ }
223
+ }
224
+
225
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
226
+ public static int ValueTypeHashCode<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(T1 param1, T2 param2, T3 param3, T4 param4,
227
+ T5 param5, T6 param6, T7 param7, T8 param8, T9 param9, T10 param10, T11 param11, T12 param12)
228
+ where T1 : unmanaged
229
+ where T2 : unmanaged
230
+ where T3 : unmanaged
231
+ where T4 : unmanaged
232
+ where T5 : unmanaged
233
+ where T6 : unmanaged
234
+ where T7 : unmanaged
235
+ where T8 : unmanaged
236
+ where T9 : unmanaged
237
+ where T10 : unmanaged
238
+ where T11 : unmanaged
239
+ where T12 : unmanaged
240
+ {
241
+ unchecked
242
+ {
243
+ return ValueTypeHashCode(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) *
244
+ HashMultiplier + param12.GetHashCode();
245
+ }
246
+ }
247
+
248
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
249
+ public static int ValueTypeHashCode<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(T1 param1, T2 param2, T3 param3, T4 param4,
250
+ T5 param5, T6 param6, T7 param7, T8 param8, T9 param9, T10 param10, T11 param11, T12 param12, T13 param13)
251
+ where T1 : unmanaged
252
+ where T2 : unmanaged
253
+ where T3 : unmanaged
254
+ where T4 : unmanaged
255
+ where T5 : unmanaged
256
+ where T6 : unmanaged
257
+ where T7 : unmanaged
258
+ where T8 : unmanaged
259
+ where T9 : unmanaged
260
+ where T10 : unmanaged
261
+ where T11 : unmanaged
262
+ where T12 : unmanaged
263
+ where T13 : unmanaged
264
+ {
265
+ unchecked
266
+ {
267
+ return ValueTypeHashCode(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) *
268
+ HashMultiplier + param13.GetHashCode();
269
+ }
270
+ }
271
+
272
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
273
+ public static int ValueTypeHashCode<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(T1 param1, T2 param2, T3 param3, T4 param4,
274
+ T5 param5, T6 param6, T7 param7, T8 param8, T9 param9, T10 param10, T11 param11, T12 param12, T13 param13, T14 param14)
275
+ where T1 : unmanaged
276
+ where T2 : unmanaged
277
+ where T3 : unmanaged
278
+ where T4 : unmanaged
279
+ where T5 : unmanaged
280
+ where T6 : unmanaged
281
+ where T7 : unmanaged
282
+ where T8 : unmanaged
283
+ where T9 : unmanaged
284
+ where T10 : unmanaged
285
+ where T11 : unmanaged
286
+ where T12 : unmanaged
287
+ where T13 : unmanaged
288
+ where T14 : unmanaged
289
+ {
290
+ unchecked
291
+ {
292
+ return ValueTypeHashCode(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) *
293
+ HashMultiplier + param14.GetHashCode();
294
+ }
295
+ }
296
+
297
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
298
+ public static int ValueTypeHashCode<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(T1 param1, T2 param2, T3 param3, T4 param4,
299
+ T5 param5, T6 param6, T7 param7, T8 param8, T9 param9, T10 param10, T11 param11, T12 param12, T13 param13, T14 param14, T15 param15)
300
+ where T1 : unmanaged
301
+ where T2 : unmanaged
302
+ where T3 : unmanaged
303
+ where T4 : unmanaged
304
+ where T5 : unmanaged
305
+ where T6 : unmanaged
306
+ where T7 : unmanaged
307
+ where T8 : unmanaged
308
+ where T9 : unmanaged
309
+ where T10 : unmanaged
310
+ where T11 : unmanaged
311
+ where T12 : unmanaged
312
+ where T13 : unmanaged
313
+ where T14 : unmanaged
314
+ where T15 : unmanaged
315
+ {
316
+ unchecked
317
+ {
318
+ return ValueTypeHashCode(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) *
319
+ HashMultiplier + param15.GetHashCode();
320
+ }
321
+ }
322
+
323
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
324
+ public static int ValueTypeHashCode<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>(T1 param1, T2 param2, T3 param3, T4 param4,
325
+ T5 param5, T6 param6, T7 param7, T8 param8, T9 param9, T10 param10, T11 param11, T12 param12, T13 param13, T14 param14, T15 param15, T16 param16)
326
+ where T1 : unmanaged
327
+ where T2 : unmanaged
328
+ where T3 : unmanaged
329
+ where T4 : unmanaged
330
+ where T5 : unmanaged
331
+ where T6 : unmanaged
332
+ where T7 : unmanaged
333
+ where T8 : unmanaged
334
+ where T9 : unmanaged
335
+ where T10 : unmanaged
336
+ where T11 : unmanaged
337
+ where T12 : unmanaged
338
+ where T13 : unmanaged
339
+ where T14 : unmanaged
340
+ where T15 : unmanaged
341
+ where T16 : unmanaged
342
+ {
343
+ unchecked
344
+ {
345
+ return ValueTypeHashCode(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) *
346
+ HashMultiplier + param16.GetHashCode();
347
+ }
348
+ }
349
+
350
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
351
+ public static int HashCode<T1>(T1 param1)
352
+ {
353
+ unchecked
354
+ {
355
+ return HashBase * NullSafeHashCode(param1);
356
+ }
357
+ }
358
+
359
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
360
+ public static int HashCode<T1, T2>(T1 param1, T2 param2)
361
+ {
362
+ unchecked
363
+ {
364
+ return HashCode(param1) * HashMultiplier + NullSafeHashCode(param2);
365
+ }
366
+ }
367
+
368
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
369
+ public static int HashCode<T1, T2, T3>(T1 param1, T2 param2, T3 param3)
370
+ {
371
+ unchecked
372
+ {
373
+ return HashCode(param1, param2) * HashMultiplier + NullSafeHashCode(param3);
374
+ }
375
+ }
376
+
377
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
378
+ public static int HashCode<T1, T2, T3, T4>(T1 param1, T2 param2, T3 param3, T4 param4)
379
+ {
380
+ unchecked
381
+ {
382
+ return HashCode(param1, param2, param3) * HashMultiplier + NullSafeHashCode(param4);
383
+ }
384
+ }
385
+
386
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
387
+ public static int HashCode<T1, T2, T3, T4, T5>(T1 param1, T2 param2, T3 param3, T4 param4, T5 param5)
388
+ {
389
+ unchecked
390
+ {
391
+ return HashCode(param1, param2, param3, param4) * HashMultiplier + NullSafeHashCode(param5);
392
+ }
393
+ }
394
+
395
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
396
+ public static int HashCode<T1, T2, T3, T4, T5, T6>(T1 param1, T2 param2, T3 param3, T4 param4, T5 param5,
397
+ T6 param6)
398
+ {
399
+ unchecked
400
+ {
401
+ return HashCode(param1, param2, param3, param4, param5) * HashMultiplier + NullSafeHashCode(param6);
402
+ }
403
+ }
404
+
405
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
406
+ public static int HashCode<T1, T2, T3, T4, T5, T6, T7>(T1 param1, T2 param2, T3 param3, T4 param4, T5 param5,
407
+ T6 param6, T7 param7)
408
+ {
409
+ unchecked
410
+ {
411
+ return HashCode(param1, param2, param3, param4, param5, param6) *
412
+ HashMultiplier + NullSafeHashCode(param7);
413
+ }
414
+ }
415
+
416
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
417
+ public static int HashCode<T1, T2, T3, T4, T5, T6, T7, T8>(T1 param1, T2 param2, T3 param3, T4 param4, T5 param5,
418
+ T6 param6, T7 param7, T8 param8)
419
+ {
420
+ unchecked
421
+ {
422
+ return HashCode(param1, param2, param3, param4, param5, param6, param7) *
423
+ HashMultiplier + NullSafeHashCode(param8);
424
+ }
425
+ }
426
+
427
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
428
+ public static int EnumerableHashCode(IEnumerable enumerable)
429
+ {
430
+ if (ReferenceEquals(enumerable, null))
431
+ {
432
+ return 0;
433
+ }
434
+ unchecked
435
+ {
436
+ int hash = HashBase;
437
+ IEnumerator walker = enumerable.GetEnumerator();
438
+ while (walker.MoveNext())
439
+ {
440
+ hash = hash * HashMultiplier + NullSafeHashCode(walker.Current);
441
+ }
442
+
443
+ return hash;
444
+ }
445
+ }
446
+ }
447
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: e6d050e096f57ea43a3defcb90b1d538
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,53 @@
1
+ namespace UnityHelpers.Core.Helper
2
+ {
3
+ using UnityEditor;
4
+ using UnityEngine;
5
+ using Utils;
6
+
7
+ public static class SpriteHelpers
8
+ {
9
+ public static void SetSpritePivot(string fullSpritePath, Vector2 pivot)
10
+ {
11
+ #if UNITY_EDITOR
12
+ SetSpritePivot(AssetImporter.GetAtPath(fullSpritePath) as TextureImporter, pivot);
13
+ #endif
14
+ }
15
+
16
+ public static void SetSpritePivot(Sprite sprite, Vector2 pivot)
17
+ {
18
+ #if UNITY_EDITOR
19
+ SetSpritePivot(AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(sprite)) as TextureImporter, pivot);
20
+ #endif
21
+ }
22
+
23
+ #if UNITY_EDITOR
24
+ public static void SetSpritePivot(TextureImporter textureImporter, Vector2 pivot)
25
+ {
26
+ if (textureImporter == null)
27
+ {
28
+ return;
29
+ }
30
+
31
+ TextureImporterSettings textureImportSettings = new TextureImporterSettings();
32
+ textureImporter.ReadTextureSettings(textureImportSettings);
33
+ textureImportSettings.spriteAlignment = (int) SpriteAlignment.Custom;
34
+ textureImportSettings.wrapMode = TextureWrapMode.Clamp;
35
+ textureImportSettings.filterMode = FilterMode.Trilinear;
36
+ textureImporter.SetTextureSettings(textureImportSettings);
37
+
38
+ TextureImporterPlatformSettings importerSettings = new TextureImporterPlatformSettings
39
+ {
40
+ resizeAlgorithm = TextureResizeAlgorithm.Bilinear,
41
+ maxTextureSize = SetTextureImportData.RegularTextureSize,
42
+ textureCompression = TextureImporterCompression.Compressed,
43
+ format = TextureImporterFormat.Automatic
44
+ };
45
+
46
+ textureImporter.SetPlatformTextureSettings(importerSettings);
47
+ textureImporter.isReadable = true;
48
+ textureImporter.spritePivot = pivot;
49
+ textureImporter.SaveAndReimport();
50
+ }
51
+ #endif
52
+ }
53
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: d28a1e1f45dd4ccbbb71f8305aec8018
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,31 @@
1
+ namespace UnityHelpers.Core.Helper
2
+ {
3
+ using System;
4
+ using System.Reflection;
5
+ using UnityEngine;
6
+
7
+ public sealed class StringInList : PropertyAttribute
8
+ {
9
+ public delegate string[] GetStringList();
10
+
11
+ public StringInList(params string[] list)
12
+ {
13
+ List = list;
14
+ }
15
+
16
+ public StringInList(Type type, string methodName)
17
+ {
18
+ MethodInfo method = type.GetMethod(methodName);
19
+ if (method != null)
20
+ {
21
+ List = method.Invoke(null, null) as string[];
22
+ }
23
+ else
24
+ {
25
+ Debug.LogError("NO SUCH METHOD " + methodName + " FOR " + type);
26
+ }
27
+ }
28
+
29
+ public string[] List { get; private set; }
30
+ }
31
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 9b010398039c42f186240019389a5d46
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant: