com.xmobitea.changx.gn-unity 2.0.3 → 2.3.0

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 (239) hide show
  1. package/Editor/GNServerSettingsEditor.cs +16 -300
  2. package/Runtime/Common/GNArray.cs +387 -302
  3. package/Runtime/Common/GNArray.cs.meta +11 -11
  4. package/Runtime/Common/GNData.cs +61 -48
  5. package/Runtime/Common/GNData.cs.meta +11 -11
  6. package/Runtime/Common/GNHashtable.cs +404 -241
  7. package/Runtime/Common/GNHashtable.cs.meta +11 -11
  8. package/Runtime/Common/IGNData.cs +20 -11
  9. package/Runtime/Common/IGNData.cs.meta +11 -11
  10. package/Runtime/Common.meta +8 -8
  11. package/Runtime/Config/GNServerSettings.cs +136 -92
  12. package/Runtime/Config/GNServerSettings.cs.meta +11 -11
  13. package/Runtime/Config.meta +8 -8
  14. package/Runtime/Constant/Commands.cs +82 -19
  15. package/Runtime/Constant/Commands.cs.meta +11 -11
  16. package/Runtime/Constant/EnumType/FriendStatus.cs +12 -12
  17. package/Runtime/Constant/EnumType/FriendStatus.cs.meta +11 -11
  18. package/Runtime/Constant/EnumType/GoogleLoginType.cs +5 -5
  19. package/Runtime/Constant/EnumType/GoogleLoginType.cs.meta +11 -11
  20. package/Runtime/Constant/EnumType/GroupStatus.cs +7 -7
  21. package/Runtime/Constant/EnumType/GroupStatus.cs.meta +11 -11
  22. package/Runtime/Constant/EnumType/InvalidMemberType.cs +23 -23
  23. package/Runtime/Constant/EnumType/InvalidMemberType.cs.meta +11 -11
  24. package/Runtime/Constant/EnumType/ItemType.cs +5 -5
  25. package/Runtime/Constant/EnumType/ItemType.cs.meta +11 -11
  26. package/Runtime/Constant/EnumType/MatchmakingMemberStatus.cs +6 -6
  27. package/Runtime/Constant/EnumType/MatchmakingMemberStatus.cs.meta +11 -11
  28. package/Runtime/Constant/EnumType/MatchmakingTicketStatus.cs +2 -2
  29. package/Runtime/Constant/EnumType/MatchmakingTicketStatus.cs.meta +11 -11
  30. package/Runtime/Constant/EnumType/OwnerType.cs +3 -2
  31. package/Runtime/Constant/EnumType/OwnerType.cs.meta +11 -11
  32. package/Runtime/Constant/EnumType/PermissionDataItem.cs +10 -10
  33. package/Runtime/Constant/EnumType/PermissionDataItem.cs.meta +11 -11
  34. package/Runtime/Constant/EnumType/PushPlatformType.cs +10 -0
  35. package/Runtime/Constant/EnumType/PushPlatformType.cs.meta +11 -0
  36. package/Runtime/Constant/EnumType/RequestRole.cs +11 -11
  37. package/Runtime/Constant/EnumType/RequestRole.cs.meta +7 -7
  38. package/Runtime/Constant/EnumType/RequestType.cs +20 -19
  39. package/Runtime/Constant/EnumType/RequestType.cs.meta +11 -11
  40. package/Runtime/Constant/EnumType/StoreReceiveType.cs +13 -0
  41. package/Runtime/Constant/EnumType/StoreReceiveType.cs.meta +11 -0
  42. package/Runtime/Constant/EnumType.meta +8 -8
  43. package/Runtime/Constant/ErrorCode/GNErrorCode.cs +53 -48
  44. package/Runtime/Constant/ErrorCode/GNErrorCode.cs.meta +7 -7
  45. package/Runtime/Constant/ErrorCode.meta +8 -8
  46. package/Runtime/Constant/EventCode.cs +43 -16
  47. package/Runtime/Constant/EventCode.cs.meta +11 -11
  48. package/Runtime/Constant/OperationCode.cs +249 -211
  49. package/Runtime/Constant/OperationCode.cs.meta +11 -11
  50. package/Runtime/Constant/ParameterCode/GNParameterCode.cs +610 -466
  51. package/Runtime/Constant/ParameterCode/GNParameterCode.cs.meta +11 -11
  52. package/Runtime/Constant/ParameterCode/ParameterCode.cs +12 -12
  53. package/Runtime/Constant/ParameterCode/ParameterCode.cs.meta +11 -11
  54. package/Runtime/Constant/ParameterCode.meta +8 -8
  55. package/Runtime/Constant/ReturnCode.cs +73 -25
  56. package/Runtime/Constant/ReturnCode.cs.meta +11 -11
  57. package/Runtime/Constant.meta +8 -8
  58. package/Runtime/Entity/DataMember.cs +342 -124
  59. package/Runtime/Entity/DataMember.cs.meta +11 -11
  60. package/Runtime/Entity/GNMetadata.cs +72 -27
  61. package/Runtime/Entity/GNMetadata.cs.meta +11 -11
  62. package/Runtime/Entity/InvalidMember.cs +52 -33
  63. package/Runtime/Entity/InvalidMember.cs.meta +11 -11
  64. package/Runtime/Entity/Models/AuthenticateModels.cs +251 -207
  65. package/Runtime/Entity/Models/AuthenticateModels.cs.meta +11 -11
  66. package/Runtime/Entity/Models/AuthenticateRequestModels.cs +153 -131
  67. package/Runtime/Entity/Models/AuthenticateRequestModels.cs.meta +11 -11
  68. package/Runtime/Entity/Models/AuthenticateResponseModels.cs +61 -51
  69. package/Runtime/Entity/Models/AuthenticateResponseModels.cs.meta +11 -11
  70. package/Runtime/Entity/Models/CharacterPlayerModels.cs +985 -849
  71. package/Runtime/Entity/Models/CharacterPlayerModels.cs.meta +11 -11
  72. package/Runtime/Entity/Models/CharacterPlayerRequestModels.cs +957 -885
  73. package/Runtime/Entity/Models/CharacterPlayerRequestModels.cs.meta +11 -11
  74. package/Runtime/Entity/Models/CharacterPlayerResponseModels.cs +165 -150
  75. package/Runtime/Entity/Models/CharacterPlayerResponseModels.cs.meta +11 -11
  76. package/Runtime/Entity/Models/CloudScriptModels.cs +185 -0
  77. package/Runtime/Entity/Models/CloudScriptModels.cs.meta +11 -0
  78. package/Runtime/Entity/Models/CloudScriptRequestModels.cs +134 -0
  79. package/Runtime/Entity/Models/CloudScriptRequestModels.cs.meta +11 -0
  80. package/Runtime/Entity/Models/CloudScriptResponseModels.cs +34 -0
  81. package/Runtime/Entity/Models/CloudScriptResponseModels.cs.meta +11 -0
  82. package/Runtime/Entity/Models/ContentModels.cs +150 -153
  83. package/Runtime/Entity/Models/ContentModels.cs.meta +11 -11
  84. package/Runtime/Entity/Models/ContentRequestModels.cs +129 -129
  85. package/Runtime/Entity/Models/ContentRequestModels.cs.meta +11 -11
  86. package/Runtime/Entity/Models/ContentResponseModels.cs +24 -24
  87. package/Runtime/Entity/Models/ContentResponseModels.cs.meta +11 -11
  88. package/Runtime/Entity/Models/DashboardModels.cs +1684 -1156
  89. package/Runtime/Entity/Models/DashboardModels.cs.meta +11 -11
  90. package/Runtime/Entity/Models/DashboardRequestModels.cs +220 -147
  91. package/Runtime/Entity/Models/DashboardRequestModels.cs.meta +11 -11
  92. package/Runtime/Entity/Models/DashboardResponseModels.cs +92 -57
  93. package/Runtime/Entity/Models/DashboardResponseModels.cs.meta +11 -11
  94. package/Runtime/Entity/Models/GamePlayerModels.cs +1073 -933
  95. package/Runtime/Entity/Models/GamePlayerModels.cs.meta +11 -11
  96. package/Runtime/Entity/Models/GamePlayerRequestModels.cs +939 -867
  97. package/Runtime/Entity/Models/GamePlayerRequestModels.cs.meta +11 -11
  98. package/Runtime/Entity/Models/GamePlayerResponseModels.cs +162 -147
  99. package/Runtime/Entity/Models/GamePlayerResponseModels.cs.meta +11 -11
  100. package/Runtime/Entity/Models/GenericModels.cs +102 -102
  101. package/Runtime/Entity/Models/GenericModels.cs.meta +11 -11
  102. package/Runtime/Entity/Models/GroupModels.cs +812 -676
  103. package/Runtime/Entity/Models/GroupModels.cs.meta +11 -11
  104. package/Runtime/Entity/Models/GroupRequestModels.cs +741 -669
  105. package/Runtime/Entity/Models/GroupRequestModels.cs.meta +11 -11
  106. package/Runtime/Entity/Models/GroupResponseModels.cs +129 -114
  107. package/Runtime/Entity/Models/GroupResponseModels.cs.meta +11 -11
  108. package/Runtime/Entity/Models/InventoryModels.cs +667 -558
  109. package/Runtime/Entity/Models/InventoryModels.cs.meta +11 -11
  110. package/Runtime/Entity/Models/InventoryRequestModels.cs +626 -579
  111. package/Runtime/Entity/Models/InventoryRequestModels.cs.meta +11 -11
  112. package/Runtime/Entity/Models/InventoryResponseModels.cs +109 -99
  113. package/Runtime/Entity/Models/InventoryResponseModels.cs.meta +11 -11
  114. package/Runtime/Entity/Models/MasterPlayerModels.cs +1882 -1340
  115. package/Runtime/Entity/Models/MasterPlayerModels.cs.meta +11 -11
  116. package/Runtime/Entity/Models/MasterPlayerRequestModels.cs +1643 -1253
  117. package/Runtime/Entity/Models/MasterPlayerRequestModels.cs.meta +11 -11
  118. package/Runtime/Entity/Models/MasterPlayerResponseModels.cs +293 -213
  119. package/Runtime/Entity/Models/MasterPlayerResponseModels.cs.meta +11 -11
  120. package/Runtime/Entity/Models/MultiplayerModels.cs +293 -223
  121. package/Runtime/Entity/Models/MultiplayerModels.cs.meta +11 -11
  122. package/Runtime/Entity/Models/MultiplayerRequestModels.cs +199 -149
  123. package/Runtime/Entity/Models/MultiplayerRequestModels.cs.meta +11 -11
  124. package/Runtime/Entity/Models/MultiplayerResponseModels.cs +59 -49
  125. package/Runtime/Entity/Models/MultiplayerResponseModels.cs.meta +11 -11
  126. package/Runtime/Entity/Models/StoreInventoryModels.cs +514 -323
  127. package/Runtime/Entity/Models/StoreInventoryModels.cs.meta +11 -11
  128. package/Runtime/Entity/Models/StoreInventoryRequestModels.cs +236 -165
  129. package/Runtime/Entity/Models/StoreInventoryRequestModels.cs.meta +11 -11
  130. package/Runtime/Entity/Models/StoreInventoryResponseModels.cs +45 -30
  131. package/Runtime/Entity/Models/StoreInventoryResponseModels.cs.meta +11 -11
  132. package/Runtime/Entity/Models.meta +8 -8
  133. package/Runtime/Entity/OperationEvent.cs +111 -75
  134. package/Runtime/Entity/OperationEvent.cs.meta +11 -11
  135. package/Runtime/Entity/OperationHelper.cs +51 -35
  136. package/Runtime/Entity/OperationHelper.cs.meta +11 -11
  137. package/Runtime/Entity/OperationRequest.cs +142 -99
  138. package/Runtime/Entity/OperationRequest.cs.meta +11 -11
  139. package/Runtime/Entity/OperationResponse.cs +111 -63
  140. package/Runtime/Entity/OperationResponse.cs.meta +11 -11
  141. package/Runtime/Entity/Request/CustomOperationRequest.cs +112 -61
  142. package/Runtime/Entity/Request/CustomOperationRequest.cs.meta +11 -11
  143. package/Runtime/Entity/Request.meta +8 -8
  144. package/Runtime/Entity/Response/CustomOperationResponse.cs +84 -63
  145. package/Runtime/Entity/Response/CustomOperationResponse.cs.meta +11 -11
  146. package/Runtime/Entity/Response.meta +8 -8
  147. package/Runtime/Entity.meta +8 -8
  148. package/Runtime/GNNetwork.cs +496 -182
  149. package/Runtime/GNNetwork.cs.meta +11 -11
  150. package/Runtime/GNNetworkApi.cs +38 -19
  151. package/Runtime/GNNetworkApi.cs.meta +11 -11
  152. package/Runtime/GNNetworkAuthenticateApi.cs +531 -98
  153. package/Runtime/GNNetworkAuthenticateApi.cs.meta +11 -11
  154. package/Runtime/GNNetworkCharacterPlayerApi.cs +1587 -762
  155. package/Runtime/GNNetworkCharacterPlayerApi.cs.meta +11 -11
  156. package/Runtime/GNNetworkCloudScriptApi.cs +181 -0
  157. package/Runtime/GNNetworkCloudScriptApi.cs.meta +11 -0
  158. package/Runtime/GNNetworkContentApi.cs +238 -132
  159. package/Runtime/GNNetworkContentApi.cs.meta +11 -11
  160. package/Runtime/GNNetworkDashboardApi.cs +278 -117
  161. package/Runtime/GNNetworkDashboardApi.cs.meta +11 -11
  162. package/Runtime/GNNetworkGamePlayerApi.cs +1558 -747
  163. package/Runtime/GNNetworkGamePlayerApi.cs.meta +11 -11
  164. package/Runtime/GNNetworkGroupApi.cs +1228 -582
  165. package/Runtime/GNNetworkGroupApi.cs.meta +11 -11
  166. package/Runtime/GNNetworkInventoryApi.cs +1048 -507
  167. package/Runtime/GNNetworkInventoryApi.cs.meta +11 -11
  168. package/Runtime/GNNetworkMasterPlayerApi.cs +2586 -1067
  169. package/Runtime/GNNetworkMasterPlayerApi.cs.meta +11 -11
  170. package/Runtime/GNNetworkMultiplayerApi.cs +328 -147
  171. package/Runtime/GNNetworkMultiplayerApi.cs.meta +11 -11
  172. package/Runtime/GNNetworkStoreInventoryApi.cs +388 -162
  173. package/Runtime/GNNetworkStoreInventoryApi.cs.meta +11 -11
  174. package/Runtime/Helper/CodeHelper.cs +140 -98
  175. package/Runtime/Helper/CodeHelper.cs.meta +11 -11
  176. package/Runtime/Helper/ConverterService.cs +236 -52
  177. package/Runtime/Helper/ConverterService.cs.meta +11 -11
  178. package/Runtime/Helper/ParseGNHelper.cs +451 -451
  179. package/Runtime/Helper/ParseGNHelper.cs.meta +11 -11
  180. package/Runtime/Helper.meta +8 -8
  181. package/Runtime/Logger/GNDebug.cs +92 -49
  182. package/Runtime/Logger/GNDebug.cs.meta +11 -11
  183. package/Runtime/Logger.meta +8 -8
  184. package/Runtime/Networking/AuthenticateStatus.cs +57 -35
  185. package/Runtime/Networking/AuthenticateStatus.cs.meta +11 -11
  186. package/Runtime/Networking/Handler/IServerEventHandler.cs +25 -25
  187. package/Runtime/Networking/Handler/IServerEventHandler.cs.meta +11 -11
  188. package/Runtime/Networking/Handler/OnCharacterPlayerFriendUpdateEventHandler.cs +61 -32
  189. package/Runtime/Networking/Handler/OnCharacterPlayerFriendUpdateEventHandler.cs.meta +11 -11
  190. package/Runtime/Networking/Handler/OnCharacterPlayerGroupUpdateEventHandler.cs +54 -33
  191. package/Runtime/Networking/Handler/OnCharacterPlayerGroupUpdateEventHandler.cs.meta +11 -11
  192. package/Runtime/Networking/Handler/OnGamePlayerFriendUpdateEventHandler.cs +54 -32
  193. package/Runtime/Networking/Handler/OnGamePlayerFriendUpdateEventHandler.cs.meta +11 -11
  194. package/Runtime/Networking/Handler/OnGamePlayerGroupUpdateEventHandler.cs +54 -32
  195. package/Runtime/Networking/Handler/OnGamePlayerGroupUpdateEventHandler.cs.meta +11 -11
  196. package/Runtime/Networking/Handler/OnGroupMemberUpdateEventHandler.cs +48 -29
  197. package/Runtime/Networking/Handler/OnGroupMemberUpdateEventHandler.cs.meta +11 -11
  198. package/Runtime/Networking/Handler/OnGroupMessageUpdateEventHandler.cs +47 -29
  199. package/Runtime/Networking/Handler/OnGroupMessageUpdateEventHandler.cs.meta +11 -11
  200. package/Runtime/Networking/Handler.meta +8 -8
  201. package/Runtime/Networking/Http/HttpPeer.cs +68 -25
  202. package/Runtime/Networking/Http/HttpPeer.cs.meta +11 -11
  203. package/Runtime/Networking/Http/NetworkingHttpPeerBase.cs +65 -25
  204. package/Runtime/Networking/Http/NetworkingHttpPeerBase.cs.meta +11 -11
  205. package/Runtime/Networking/Http/NetworkingPeerHttpClientRequest.cs +513 -486
  206. package/Runtime/Networking/Http/NetworkingPeerHttpClientRequest.cs.meta +11 -11
  207. package/Runtime/Networking/Http/NetworkingPeerHttpRequest.cs +172 -142
  208. package/Runtime/Networking/Http/NetworkingPeerHttpRequest.cs.meta +11 -11
  209. package/Runtime/Networking/Http/NetworkingPeerUnityWebRequest.cs +225 -188
  210. package/Runtime/Networking/Http/NetworkingPeerUnityWebRequest.cs.meta +11 -11
  211. package/Runtime/Networking/Http.meta +8 -8
  212. package/Runtime/Networking/IPeer.cs +41 -19
  213. package/Runtime/Networking/IPeer.cs.meta +11 -11
  214. package/Runtime/Networking/NetworkingPeer.cs +198 -144
  215. package/Runtime/Networking/NetworkingPeer.cs.meta +11 -11
  216. package/Runtime/Networking/NetworkingPeerAPI.cs +20 -21
  217. package/Runtime/Networking/NetworkingPeerAPI.cs.meta +11 -11
  218. package/Runtime/Networking/OperationPending.cs +159 -95
  219. package/Runtime/Networking/OperationPending.cs.meta +11 -11
  220. package/Runtime/Networking/PeerBase.cs +305 -242
  221. package/Runtime/Networking/PeerBase.cs.meta +11 -11
  222. package/Runtime/Networking/Socket/NetworkingPeerSocketV2.cs +222 -185
  223. package/Runtime/Networking/Socket/NetworkingPeerSocketV2.cs.meta +11 -11
  224. package/Runtime/Networking/Socket/NetworkingPeerSocketV3.cs +235 -177
  225. package/Runtime/Networking/Socket/NetworkingPeerSocketV3.cs.meta +11 -11
  226. package/Runtime/Networking/Socket/NetworkingSocketPeerBase.cs +165 -23
  227. package/Runtime/Networking/Socket/NetworkingSocketPeerBase.cs.meta +11 -11
  228. package/Runtime/Networking/Socket/SocketPeer.cs +242 -197
  229. package/Runtime/Networking/Socket/SocketPeer.cs.meta +11 -11
  230. package/Runtime/Networking/Socket.meta +8 -8
  231. package/Runtime/Networking.meta +8 -8
  232. package/Runtime/Unity/ServiceCoroutine.cs +10 -0
  233. package/Runtime/Unity/ServiceCoroutine.cs.meta +11 -0
  234. package/Runtime/Unity/ServiceUpdate.cs +33 -20
  235. package/Runtime/Unity/ServiceUpdate.cs.meta +11 -11
  236. package/Runtime/Unity.meta +8 -8
  237. package/Runtime/XmobiTea.GN.runtime.asmdef +16 -16
  238. package/Runtime/XmobiTea.GN.runtime.asmdef.meta +7 -7
  239. package/package.json +1 -1
@@ -1,124 +1,342 @@
1
- using System;
2
- using System.Reflection;
3
- using XmobiTea.GN.Common;
4
-
5
- namespace XmobiTea.GN.Entity
6
- {
7
- public interface IGNEnhancedObjectFieldMetadata : GNObjectFieldMetadata
8
- {
9
- string code { get; set; }
10
- bool isOptional { get; set; }
11
- GNFieldDataType gnFieldType { get; set; }
12
- object defaultValue { get; set; }
13
-
14
- bool activeConditionValid { get; set; }
15
-
16
- bool? mustNonNull { get; set; }
17
- int? minLength { get; set; }
18
- int? maxLength { get; set; }
19
- double? minValue { get; set; }
20
- double? maxValue { get; set; }
21
- bool? mustInt { get; set; }
22
- }
23
-
24
- public class GNEnhancedObjectFieldMetadata : IGNEnhancedObjectFieldMetadata
25
- {
26
- public string code { get; set; }
27
- public bool isOptional { get; set; }
28
- public GNFieldDataType gnFieldType { get; set; }
29
- public object defaultValue { get; set; }
30
- public bool activeConditionValid { get; set; }
31
- public bool? mustNonNull { get; set; }
32
- public int? minLength { get; set; }
33
- public int? maxLength { get; set; }
34
- public double? minValue { get; set; }
35
- public double? maxValue { get; set; }
36
- public bool? mustInt { get; set; }
37
-
38
- public string name { get; }
39
- public FieldDataType fieldType { get; }
40
- public Type cls { get; }
41
-
42
- public FieldInfo fieldInfo { get; }
43
-
44
- public GNEnhancedObjectFieldMetadata(string name, FieldDataType fieldType, Type cls, FieldInfo fieldInfo)
45
- {
46
- this.name = name;
47
- this.fieldType = fieldType;
48
- this.cls = cls;
49
-
50
- this.fieldInfo = fieldInfo;
51
- }
52
- }
53
-
54
- public enum GNFieldDataType
55
- {
56
- Other = 0,
57
- Number = 1,
58
- String = 2,
59
- Boolean = 3,
60
- GNHashtable = 4,
61
- GNArray = 5,
62
-
63
- }
64
-
65
- [AttributeUsage(AttributeTargets.Field, Inherited = true, AllowMultiple = false)]
66
- public class DataMemberAttribute : Attribute
67
- {
68
- public virtual GNFieldDataType gnFieldType => GNFieldDataType.Other;
69
-
70
- public string code { get; set; }
71
- public bool isOptional { get; set; } = false;
72
-
73
- public object defaultValue { get; set; } = null;
74
- }
75
-
76
- public class StringDataMemberAttribute : DataMemberAttribute
77
- {
78
- public override GNFieldDataType gnFieldType => GNFieldDataType.String;
79
-
80
- public new string defaultValue { get; set; }
81
-
82
- public bool mustNonNull { get; set; } = false;
83
- public int minLength { get; set; } = -1;
84
- public int maxLength { get; set; } = -1;
85
- }
86
-
87
- public class BooleanDataMemberAttribute : DataMemberAttribute
88
- {
89
- public override GNFieldDataType gnFieldType => GNFieldDataType.Boolean;
90
-
91
- public new bool defaultValue { get; set; } = false;
92
- }
93
-
94
- public class GNHashtableDataMemberAttribute : DataMemberAttribute
95
- {
96
- public override GNFieldDataType gnFieldType => GNFieldDataType.GNHashtable;
97
-
98
- public new GNHashtable defaultValue { get; set; } = null;
99
- public bool mustNonNull { get; set; } = false;
100
- public int minLength { get; set; } = -1;
101
- public int maxLength { get; set; } = -1;
102
- }
103
-
104
- public class GNArrayDataMemberAttribute : DataMemberAttribute
105
- {
106
- public override GNFieldDataType gnFieldType => GNFieldDataType.GNArray;
107
-
108
- public new GNArray defaultValue { get; set; } = null;
109
- public bool mustNonNull { get; set; } = false;
110
- public int minLength { get; set; } = -1;
111
- public int maxLength { get; set; } = -1;
112
- public Type elementCls { get; set; } = null;
113
- }
114
-
115
- public class NumberDataMemberAttribute : DataMemberAttribute
116
- {
117
- public override GNFieldDataType gnFieldType => GNFieldDataType.Number;
118
-
119
- public new double defaultValue { get; set; }
120
- public double minValue { get; set; } = -1;
121
- public double maxValue { get; set; } = -1;
122
- public bool mustInt { get; set; } = false;
123
- }
124
- }
1
+ using System;
2
+ using System.Reflection;
3
+ using XmobiTea.GN.Common;
4
+
5
+ namespace XmobiTea.GN.Entity
6
+ {
7
+ /// <summary>
8
+ /// Enhanced metadata for an object field in the GN system.
9
+ /// </summary>
10
+ public interface IGNEnhancedObjectFieldMetadata : GNObjectFieldMetadata
11
+ {
12
+ /// <summary>
13
+ /// Gets or sets the code associated with the field.
14
+ /// </summary>
15
+ string code { get; set; }
16
+
17
+ /// <summary>
18
+ /// Gets or sets whether the field is optional.
19
+ /// </summary>
20
+ bool isOptional { get; set; }
21
+
22
+ /// <summary>
23
+ /// Gets or sets the data type of the field.
24
+ /// </summary>
25
+ GNFieldDataType gnFieldType { get; set; }
26
+
27
+ /// <summary>
28
+ /// Gets or sets the default value of the field.
29
+ /// </summary>
30
+ object defaultValue { get; set; }
31
+
32
+ /// <summary>
33
+ /// Gets or sets whether the active condition validation is valid.
34
+ /// </summary>
35
+ bool activeConditionValid { get; set; }
36
+
37
+ /// <summary>
38
+ /// Gets or sets whether the field must be non-null.
39
+ /// </summary>
40
+ bool? mustNonNull { get; set; }
41
+
42
+ /// <summary>
43
+ /// Gets or sets the minimum length for the field's value, if applicable.
44
+ /// </summary>
45
+ int? minLength { get; set; }
46
+
47
+ /// <summary>
48
+ /// Gets or sets the maximum length for the field's value, if applicable.
49
+ /// </summary>
50
+ int? maxLength { get; set; }
51
+
52
+ /// <summary>
53
+ /// Gets or sets the minimum value for the field, if applicable.
54
+ /// </summary>
55
+ double? minValue { get; set; }
56
+
57
+ /// <summary>
58
+ /// Gets or sets the maximum value for the field, if applicable.
59
+ /// </summary>
60
+ double? maxValue { get; set; }
61
+
62
+ /// <summary>
63
+ /// Gets or sets whether the field's value must be an integer.
64
+ /// </summary>
65
+ bool? mustInt { get; set; }
66
+ }
67
+
68
+ /// <summary>
69
+ /// Implementation of the enhanced metadata for an object field in the GN system.
70
+ /// </summary>
71
+ public class GNEnhancedObjectFieldMetadata : IGNEnhancedObjectFieldMetadata
72
+ {
73
+ /// <inheritdoc/>
74
+ public string code { get; set; }
75
+
76
+ /// <inheritdoc/>
77
+ public bool isOptional { get; set; }
78
+
79
+ /// <inheritdoc/>
80
+ public GNFieldDataType gnFieldType { get; set; }
81
+
82
+ /// <inheritdoc/>
83
+ public object defaultValue { get; set; }
84
+
85
+ /// <inheritdoc/>
86
+ public bool activeConditionValid { get; set; }
87
+
88
+ /// <inheritdoc/>
89
+ public bool? mustNonNull { get; set; }
90
+
91
+ /// <inheritdoc/>
92
+ public int? minLength { get; set; }
93
+
94
+ /// <inheritdoc/>
95
+ public int? maxLength { get; set; }
96
+
97
+ /// <inheritdoc/>
98
+ public double? minValue { get; set; }
99
+
100
+ /// <inheritdoc/>
101
+ public double? maxValue { get; set; }
102
+
103
+ /// <inheritdoc/>
104
+ public bool? mustInt { get; set; }
105
+
106
+ /// <inheritdoc/>
107
+ public string name { get; }
108
+
109
+ /// <inheritdoc/>
110
+ public FieldDataType fieldType { get; }
111
+
112
+ /// <inheritdoc/>
113
+ public Type cls { get; }
114
+
115
+ /// <inheritdoc/>
116
+ public FieldInfo fieldInfo { get; }
117
+
118
+ /// <summary>
119
+ /// Initializes a new instance of the <see cref="GNEnhancedObjectFieldMetadata"/> class.
120
+ /// </summary>
121
+ /// <param name="name">The name of the field.</param>
122
+ /// <param name="fieldType">The type of data stored in the field.</param>
123
+ /// <param name="cls">The class type associated with the field.</param>
124
+ /// <param name="fieldInfo">The reflection field information for the field.</param>
125
+ public GNEnhancedObjectFieldMetadata(string name, FieldDataType fieldType, Type cls, FieldInfo fieldInfo)
126
+ {
127
+ this.name = name;
128
+ this.fieldType = fieldType;
129
+ this.cls = cls;
130
+ this.fieldInfo = fieldInfo;
131
+ }
132
+ }
133
+
134
+ /// <summary>
135
+ /// Enumeration of GN field data types.
136
+ /// </summary>
137
+ public enum GNFieldDataType
138
+ {
139
+ /// <summary>
140
+ /// Represents an undefined or other data type.
141
+ /// </summary>
142
+ Other = 0,
143
+
144
+ /// <summary>
145
+ /// Represents numeric data types (e.g., int, float, double).
146
+ /// </summary>
147
+ Number = 1,
148
+
149
+ /// <summary>
150
+ /// Represents string data types.
151
+ /// </summary>
152
+ String = 2,
153
+
154
+ /// <summary>
155
+ /// Represents boolean data types.
156
+ /// </summary>
157
+ Boolean = 3,
158
+
159
+ /// <summary>
160
+ /// Represents GNHashtable data types.
161
+ /// </summary>
162
+ GNHashtable = 4,
163
+
164
+ /// <summary>
165
+ /// Represents GNArray data types.
166
+ /// </summary>
167
+ GNArray = 5,
168
+ }
169
+
170
+ /// <summary>
171
+ /// Base attribute for data member fields with optional metadata.
172
+ /// </summary>
173
+ [AttributeUsage(AttributeTargets.Field, Inherited = true, AllowMultiple = false)]
174
+ public class DataMemberAttribute : Attribute
175
+ {
176
+ /// <summary>
177
+ /// Gets the field data type, defaults to Other.
178
+ /// </summary>
179
+ public virtual GNFieldDataType gnFieldType => GNFieldDataType.Other;
180
+
181
+ /// <summary>
182
+ /// Gets or sets the code associated with the field.
183
+ /// </summary>
184
+ public string code { get; set; }
185
+
186
+ /// <summary>
187
+ /// Gets or sets whether the field is optional. Default is false.
188
+ /// </summary>
189
+ public bool isOptional { get; set; } = false;
190
+
191
+ /// <summary>
192
+ /// Gets or sets the default value for the field.
193
+ /// </summary>
194
+ public object defaultValue { get; set; } = null;
195
+ }
196
+
197
+ /// <summary>
198
+ /// Attribute for string data member fields with additional constraints.
199
+ /// </summary>
200
+ public class StringDataMemberAttribute : DataMemberAttribute
201
+ {
202
+ /// <summary>
203
+ /// Overrides the field data type to String.
204
+ /// </summary>
205
+ public override GNFieldDataType gnFieldType => GNFieldDataType.String;
206
+
207
+ /// <summary>
208
+ /// Gets or sets the default value for the string field.
209
+ /// </summary>
210
+ public new string defaultValue { get; set; }
211
+
212
+ /// <summary>
213
+ /// Gets or sets whether the string must be non-null. Default is false.
214
+ /// </summary>
215
+ public bool mustNonNull { get; set; } = false;
216
+
217
+ /// <summary>
218
+ /// Gets or sets the minimum length for the string. Default is -1 (no constraint).
219
+ /// </summary>
220
+ public int minLength { get; set; } = -1;
221
+
222
+ /// <summary>
223
+ /// Gets or sets the maximum length for the string. Default is -1 (no constraint).
224
+ /// </summary>
225
+ public int maxLength { get; set; } = -1;
226
+ }
227
+
228
+ /// <summary>
229
+ /// Attribute for boolean data member fields with additional constraints.
230
+ /// </summary>
231
+ public class BooleanDataMemberAttribute : DataMemberAttribute
232
+ {
233
+ /// <summary>
234
+ /// Overrides the field data type to Boolean.
235
+ /// </summary>
236
+ public override GNFieldDataType gnFieldType => GNFieldDataType.Boolean;
237
+
238
+ /// <summary>
239
+ /// Gets or sets the default value for the boolean field. Default is false.
240
+ /// </summary>
241
+ public new bool defaultValue { get; set; } = false;
242
+ }
243
+
244
+ /// <summary>
245
+ /// Attribute for GNHashtable data member fields with additional constraints.
246
+ /// </summary>
247
+ public class GNHashtableDataMemberAttribute : DataMemberAttribute
248
+ {
249
+ /// <summary>
250
+ /// Overrides the field data type to GNHashtable.
251
+ /// </summary>
252
+ public override GNFieldDataType gnFieldType => GNFieldDataType.GNHashtable;
253
+
254
+ /// <summary>
255
+ /// Gets or sets the default value for the GNHashtable field.
256
+ /// </summary>
257
+ public new GNHashtable defaultValue { get; set; } = null;
258
+
259
+ /// <summary>
260
+ /// Gets or sets whether the GNHashtable must be non-null. Default is false.
261
+ /// </summary>
262
+ public bool mustNonNull { get; set; } = false;
263
+
264
+ /// <summary>
265
+ /// Gets or sets the minimum length for the GNHashtable. Default is -1 (no constraint).
266
+ /// </summary>
267
+ public int minLength { get; set; } = -1;
268
+
269
+ /// <summary>
270
+ /// Gets or sets the maximum length for the GNHashtable. Default is -1 (no constraint).
271
+ /// </summary>
272
+ public int maxLength { get; set; } = -1;
273
+ }
274
+
275
+ /// <summary>
276
+ /// Attribute for GNArray data member fields with additional constraints.
277
+ /// </summary>
278
+ public class GNArrayDataMemberAttribute : DataMemberAttribute
279
+ {
280
+ /// <summary>
281
+ /// Overrides the field data type to GNArray.
282
+ /// </summary>
283
+ public override GNFieldDataType gnFieldType => GNFieldDataType.GNArray;
284
+
285
+ /// <summary>
286
+ /// Gets or sets the default value for the GNArray field.
287
+ /// </summary>
288
+ public new GNArray defaultValue { get; set; } = null;
289
+
290
+ /// <summary>
291
+ /// Gets or sets whether the GNArray must be non-null. Default is false.
292
+ /// </summary>
293
+ public bool mustNonNull { get; set; } = false;
294
+
295
+ /// <summary>
296
+ /// Gets or sets the minimum length for the GNArray. Default is -1 (no constraint).
297
+ /// </summary>
298
+ public int minLength { get; set; } = -1;
299
+
300
+ /// <summary>
301
+ /// Gets or sets the maximum length for the GNArray. Default is -1 (no constraint).
302
+ /// </summary>
303
+ public int maxLength { get; set; } = -1;
304
+
305
+ /// <summary>
306
+ /// Gets or sets the type of elements in the GNArray.
307
+ /// </summary>
308
+ public Type elementCls { get; set; } = null;
309
+ }
310
+
311
+ /// <summary>
312
+ /// Attribute for numeric data member fields with additional constraints.
313
+ /// </summary>
314
+ public class NumberDataMemberAttribute : DataMemberAttribute
315
+ {
316
+ /// <summary>
317
+ /// Overrides the field data type to Number.
318
+ /// </summary>
319
+ public override GNFieldDataType gnFieldType => GNFieldDataType.Number;
320
+
321
+ /// <summary>
322
+ /// Gets or sets the default value for the numeric field.
323
+ /// </summary>
324
+ public new double defaultValue { get; set; }
325
+
326
+ /// <summary>
327
+ /// Gets or sets the minimum value for the numeric field. Default is -1 (no constraint).
328
+ /// </summary>
329
+ public double minValue { get; set; } = -1;
330
+
331
+ /// <summary>
332
+ /// Gets or sets the maximum value for the numeric field. Default is -1 (no constraint).
333
+ /// </summary>
334
+ public double maxValue { get; set; } = -1;
335
+
336
+ /// <summary>
337
+ /// Gets or sets whether the numeric field must be an integer. Default is false.
338
+ /// </summary>
339
+ public bool mustInt { get; set; } = false;
340
+ }
341
+
342
+ }
@@ -1,11 +1,11 @@
1
- fileFormatVersion: 2
2
- guid: 2fb46eda6cad8b34baca26e5a0fc682f
3
- MonoImporter:
4
- externalObjects: {}
5
- serializedVersion: 2
6
- defaultReferences: []
7
- executionOrder: 0
8
- icon: {instanceID: 0}
9
- userData:
10
- assetBundleName:
11
- assetBundleVariant:
1
+ fileFormatVersion: 2
2
+ guid: 2fb46eda6cad8b34baca26e5a0fc682f
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -1,27 +1,72 @@
1
- namespace XmobiTea.GN.Entity
2
- {
3
- using System;
4
-
5
- public enum FieldDataType
6
- {
7
- Boolean = 0,
8
- Number = 1,
9
- String = 2,
10
- Array = 3,
11
- Object = 4,
12
- }
13
-
14
- public interface GNObjectFieldMetadata
15
- {
16
- string name { get; }
17
- FieldDataType fieldType { get; }
18
- Type cls { get; }
19
- }
20
-
21
- public interface GNObjectMetadata
22
- {
23
- string id { get; }
24
- GNObjectFieldMetadata[] fields { get; }
25
- }
26
-
27
- }
1
+ namespace XmobiTea.GN.Entity
2
+ {
3
+ using System;
4
+
5
+ /// <summary>
6
+ /// Enum representing the various data types for object fields.
7
+ /// </summary>
8
+ public enum FieldDataType
9
+ {
10
+ /// <summary>
11
+ /// Boolean data type.
12
+ /// </summary>
13
+ Boolean = 0,
14
+
15
+ /// <summary>
16
+ /// Numeric data type.
17
+ /// </summary>
18
+ Number = 1,
19
+
20
+ /// <summary>
21
+ /// String data type.
22
+ /// </summary>
23
+ String = 2,
24
+
25
+ /// <summary>
26
+ /// Array data type.
27
+ /// </summary>
28
+ Array = 3,
29
+
30
+ /// <summary>
31
+ /// Object data type.
32
+ /// </summary>
33
+ Object = 4,
34
+ }
35
+
36
+ /// <summary>
37
+ /// Metadata describing a field in a GN object.
38
+ /// </summary>
39
+ public interface GNObjectFieldMetadata
40
+ {
41
+ /// <summary>
42
+ /// Gets the name of the field.
43
+ /// </summary>
44
+ string name { get; }
45
+
46
+ /// <summary>
47
+ /// Gets the type of the field.
48
+ /// </summary>
49
+ FieldDataType fieldType { get; }
50
+
51
+ /// <summary>
52
+ /// Gets the class type of the field, if applicable.
53
+ /// </summary>
54
+ Type cls { get; }
55
+ }
56
+
57
+ /// <summary>
58
+ /// Metadata describing a GN object.
59
+ /// </summary>
60
+ public interface GNObjectMetadata
61
+ {
62
+ /// <summary>
63
+ /// Gets the unique identifier for the GN object.
64
+ /// </summary>
65
+ string id { get; }
66
+
67
+ /// <summary>
68
+ /// Gets an array of field metadata for the GN object.
69
+ /// </summary>
70
+ GNObjectFieldMetadata[] fields { get; }
71
+ }
72
+ }
@@ -1,11 +1,11 @@
1
- fileFormatVersion: 2
2
- guid: efcab10bf6c0a39469ab2352f22cff05
3
- MonoImporter:
4
- externalObjects: {}
5
- serializedVersion: 2
6
- defaultReferences: []
7
- executionOrder: 0
8
- icon: {instanceID: 0}
9
- userData:
10
- assetBundleName:
11
- assetBundleVariant:
1
+ fileFormatVersion: 2
2
+ guid: efcab10bf6c0a39469ab2352f22cff05
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant: